Puppetは頭を動かすのにちょっとした怪物なので、例によって学ぶことは悪いことではありません。以下では、モジュールを使用していると仮定しています-そうでない場合、またはモジュールを組み立てる方法についての詳細が必要な場合は、コメントで言ってください。
という新しいモジュールを開始するとしましょうmymodule
。/etc/puppet
puppetマスターのpuppetホームディレクトリ(通常)で、モジュールマニフェストとファイルディレクトリを作成する必要があります。
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
次に、そのディレクトリにファイルを作成し、次のinit.pp
ように入力します。
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
次に入れdatas.xls
モジュールのにファイルをfiles
ディレクトリ-この例ではmodules/mymodule/files/
。(テンプレートtemplates
用のディレクトリも存在することに注意してください)。
でmanifests/site.pp
ファイルあなたのような何かをすることによって、モジュールをインポートし、クラスを含める必要があります。
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
すべてのノードがbaseから継承していることを確認してください。puppet 0.25の時点では、ノード名に正規表現を使用できます。例:
node server[0-9] inherits base {}
さらに説明が必要な場合は、コメントでお知らせください。
操り人形マスターと会話するためのクライアントのセットアップ
クライアントでは、次のことを行う必要があります。
sudo apt-get install puppet
次に、編集/etc/default/puppet
してに変更START=no
しSTART=yes
ます。
また/etc/puppet/puppet.conf
、[main]
セクションに行を編集して追加し、パペットマスターの場所を指定します。
server=puppet.mydomain.com
その後、を使用してテストを実行できますsudo puppetd --test
。キーエラーが発生した場合は、Puppetマスターサーバーに進み、クライアントキーに署名する必要があります。正確な名前を確認するにはsudo puppetca --list
、それからsudo puppetca --sign server1.mydomain.com
(またはlistコマンドで指定されたサーバー名)を実行します。
ここでpuppetサービスを開始するとsudo service puppet start
、離れます。パペットサービスは1時間ごとに実行されるため、パペットレシピを更新すると、すべてのクライアントも更新されます。
ファイルを削除する
元の質問で、ファイルを削除する方法を知りたいと思いました。に編集manifests/init.pp
します
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
その他の便利なヒント
問題が発生している場合、いくつかの方法があります。puppetがインストールされているマシンでは、次を実行して構文を確認できます。
puppet --parseonly --ignoreimport myfile.pp
または、--ignoreimport
フラグを削除して全体を確認しますが、実際にはエラーではない面白いエラーメッセージが表示される場合があります。また、次を実行することにより、パペットクライアントマシンでパペットをライブで実行できます。
sudo puppetd --test
さまざまな有用な出力を示し、エラーと警告が異なる色で強調表示されます。さらに詳細が必要な場合は、次を実行できます。
sudo puppetd --test --debug
しかし、それは一般に非常に多くの出力を生成するので、通り抜けるのは難しいので、前のステップをすでに試していて立ち往生していて、すべてが行われていることを確認する必要がある場合にのみ行ってください。
これは、現在仕事で使用しているpuppet 0.25.xに基づいており、Ubuntu 10.04のバージョンでもあることに注意してください。メインセクションのパペットコードは間違いなく機能しますが、パペットの新しいバージョンには出力のデバッグに役立つ新しいフラグがあります。