2017-08-04 6 views
0

人形と迷惑メールでコードを書き込もうとしていますが、マニフェストを含むディレクトリからターゲットサーバーにファイルをコピーする方法が見つかりません。 ansibleで人形を使って相対パスでファイルをコピーする

私はこれを使用:

- name: Copy public key 
    copy: 
    src: ./myKey 
    dest: /home/user/.ssh/authorized_keys 

私は絶対パスを使用してこの作業を行う方法を理解しますが、使用したい人形

- file { 'myKey': 
    path => '/home/user/.ssh/authorized_keys', 
    ensure => file, 
    source => ./myKey } 

でこのような何かをしたいと思いますここでの相対パスは私のスクリプトがgitクローンでプルダウンされ、別のディレクトリ設定を持つ別のマシン上で実行されるためです。

Vagrant.configure("2") do |config| 
config.vm.network "private_network", ip: "192.168.1.1", auto_config: true 
config.vm.box = "puppetlabs/centos-7.2-64-puppet-enterprise" 
config.vm.provision "puppet" do |puppet| 
    puppet.manifest_file = "srv_site.pp" 
end 
end 
+0

マスターかマスターなしですか? –

+0

私はそれを持ち上げるために腐敗剤を使用しているので、私はマスターを推測していますか?私はこれを使用しています: Vagrant.configure( "2")do | config | config.vm.provision "人形" end 私はこれを使う方が良いでしょうか? puppet.module_path = "./"またはモジュールフォルダをまだ見ているのでしょうか? ご迷惑をおかけして申し訳ございませんが、テストによって明らかになった場合は、月曜日にこれをテストします。 人形を使って - 私が知っているのは、指定するモジュールオプションがあることを知っていますが、私はそれをどのようにして迷路で行うのか分かりません。 – lime

+0

VagrantファイルのPuppetプロビジョニング部分を送信して、設定をお知らせください。 –

答えて

0

人形の中にファイルをコピーするには、ファイルをモジュールパスのファイルに入れる必要があります。あなたのモジュールがMyModuleというファイルはここに行くべきという名前であれば:

./mymodule/files/mykey 

を、モジュール内のファイルが

file { 'mykey': 
    ensure => file, 
    path => '/home/user/.ssh/authorized_keys', 
    source => "puppet:///modules/${module_name}/mykey" 
    } 

によってコピーされますがない限り、パペットマスター上の別の場所にソースを指すことはできませんPupperマスターにファイルサーバーのマウントポイントを設定します(https://docs.puppet.com/puppet/4.10/file_serving.htmlを参照)。 ソースは他の場所を指すことができるhttps://docs.puppet.com/puppet/4.10/types/file.html#file-attribute-sourceを参照してください。

関連する問題