1

通常、Bash スクリプトを Chef に変換する必要があります。しかし、時には (今のように) 反対のことをする必要があります。特定の構成で特定の Chef クックブックに対して実行されるコマンドのリストを自動的に取得する方法はありますか?

私は、Chef クックブックのすべての機能を備えたものを完成させようとしているわけではありません。最終的に、この特定の環境でこの特定のインストールを再現するコマンドの小さなセットを作成したいと考えています。(この場合の理由は、「sudo」コマンドを分離して、他の人に実行させる必要があるためです。ただし、このタスクを実行するために Chef を実行できるマシンで sudo アクセスを持っています。)

4

1 に答える 1

4

一般的にそれができるとは思えませんし、仮にできたとしても、Chef で必要なものを実装するよりも多くの作業が必要になるでしょう。

たとえば、構成ファイルを作成するような単純なものでさえ、Chef では ruby​​ コードとして実装されます。それを に変換する方法を見つける必要がありますecho "…" > /etc/whatever.comすべてのリソースに対してそれを行うことは、大きな仕事です。

実際にすべきことは、別のユーザーとしてコマンドを実行するために使用する Chef クックブックを変更することだと思います。

templateとのようなことfileは非常に簡単です。ファイルはルートとして作成されchown、正しいユーザーに -ed されます。リソース (コマンドを実行する) は、ユーザーを指定するだけexecuteでコマンドを実行するように構成できます。su

execute "something" do
  command "whoami"
  user "nobody"
end

理解するのに時間がかかるかもしれませんが、コツをつかめばとても簡単です。bash に変換するよりもはるかに簡単です。

于 2012-11-28T11:29:56.967 に答える