詳細を説明すると、AWS で構築し、Puppet を使用して DSC を処理し、Puppet をブートストラップしてプロビジョニングし、新しくプロビジョニングされたノードに Puppet をインストールします。
私は少しの間 Puppet を使用してきましたが、vm の作成時にのみ実行されるモジュールを書きたいと思っています。
私の特定の使用例は、Puppet を介して自動的に、新しくプロビジョニングされたノードにウイルス対策 (具体的には、Trend Micro Deep Security) をインストールしたいということです。
これを実行するためのスクリプトは、ダウンロード、実行、およびそれ自体をアクティブにするためのいくつかの TMDS 固有のコマンドのみを必要とします。
Puppet を使用すると、すべての実行 (ダウンロード、インストールの試行、アクティブ化の試行) でこれが行われますが、これは私が望むものではありません。
ただし、Puppet が Trend Micro やその取得方法、URL などについて「知っている」とは思わないため、次のようなものは使用できません。
service { "trend micro":
ensure => running,
ensure => present,
}
いくつかの調査を行い、ブログ投稿を見て、コードの構造が次の行に沿ったものであることを知っています(正しくないことはわかっています):
exec {'function_name':
# the script that downloads/installs/activates etc.
command => '/path/to/script.sh',
onlyif => systemctl service_trendmicro,
# which system should return 0 or 1 for pass/fail - I only want it to exec on 0 ofc.
}
したがって、私の質問は次のとおりです。これをどのようにまとめるのですか?