Puppet 用に 2 つの異なるモジュールをコーディングしました。1 つは Tomcat7 がインストールされて実行されていることを確認するモジュールで、もう 1 つは Web アプリケーションを Tomcat webapps フォルダーにデプロイするモジュールです。
ただし、これら 2 つのモジュールを使用して puppet をデーモンとして実行すると、puppetmaster と puppet が同期するたびにアプリケーションがデプロイされるため、次のようにする必要があると思います。
- そのようなノードによって実行されるマニフェストのリストに tomcat モジュールを追加します。このようにして、Tomcat が 30 分ごとに稼働していることを確認します。
その後:
A. 以下のコマンドを使用して puppet エージェントでノーデーモン化ワンタイム タスクを呼び出し、タグを使用してデプロイ アプリケーション モジュールのみを実行するように指定します。
puppet エージェント --server MYSERVER --no-daemonize --onetime --tags deploy_app
B. 何らかの方法でデプロイ アプリケーション モジュールを変更します。たとえば、artifact でアプリケーションのバージョンを指定して、puppet エージェントを呼び出す代わりに puppetmaster から自動的にデプロイするようにします。
正しいアプローチは何ですか?この種のタスクを Puppet で実行するために、企業は通常何をしていますか?
puppetmaster からデプロイする場合、アプリケーションがいつ正確にデプロイされたかを知るのは難しいと思います。そのため、デプロイ プロセスを制御できなくなります。これは良くないと思います。