4

私たちのショップでの将来の展開およびプロビジョニング ツールとして Puppet を調査していますが、現在、Puppet を介した展開で巧妙な継続的インテグレーション/デリバリー ツール チェーンを作成する方法に行き詰まっています。

どの環境 (dev、test、qa、demo、prod) にも、さまざまなコンポーネントがあります。各コンポーネントを個別に、場合によっては同時に展開できる必要があります。

(スクリプトを介して)単一のコンポーネント パッケージ (=Puppet モジュール)のデプロイを開始し、その出力と成功ステータスを収集する方法が必要です。スケジュールされたエージェントのプルを単に待つか、環境の各ノードで「puppet エージェント --test」を実行するだけでは、他の保留中の変更が検出される可能性があるため、十分ではありません (別のコンポーネントも含まれているかどうかはわかりません)。展開されるプロセス)。

私のツール チェーンでは、コンポーネント A とコンポーネント B からのデプロイの出力とステータスを別々に記録し、混同しないようにしたいと考えています。

だから私の質問は: パペットを使用して、一度に 1 つの名前付きパッケージ (モジュール) をデプロイできますか?

そうでない場合は、この道を車で下ったときにどこで間違った方向に曲がったのでしょうか?

各ノードに複製されたモジュールとマニフェストを使用したマスターレスの Puppet セットアップはおそらくそれを実行できると思いますが、IMHO マスターレスの Puppet セットアップは Puppet の目的を無効にします。

PS: 私が達成しようとしているのは、DevOps ツールをサービス デリバリー プラットフォームに統合する(22:30 頃のタイムスタンプ) での Damon Edwards の非常に啓発的なビデオで「Directed Orchestration」と呼ばれていると思います。

4

3 に答える 3

3
  • だから私の質問は: パペットを使用して、一度に 1 つの名前付きパッケージ (モジュール) をデプロイできますか?

はい、できますpuppet apply。最初に、moduledir と、マニフェストを含むモジュールを作成する必要があります。例:

  /scratch/user/puppet/local/  # This is your modulepath for local deployment

  # Following contains the manifests for a module name "localmod"
  /scratch/user/puppet/local/localmod/manifests/init.pp 

  # example content of init.pp
  class localmod {
    notify{"I am in in local module....":}
  }

そのローカル マシンで、次の方法でこのモジュールをテストできますpuppet apply

 puppet apply -v --modulepath=/scratch/user/puppet/local -e "include localmod"
 echo $? # Get the exit status of the above command
于 2013-10-04T15:32:13.137 に答える