Mac OS Xの「/ etc / ansible /」に設定ファイルが見つかりません


14

私はMac OS Xを使用していますが、Ansibleは初めてです。インストール方法を忘れてしまいました。私は経由で思うpip

$ pip freeze
altgraph==0.12
ansible==1.9.2

とにかく、私が読んでいるものから、に設定ファイルがあるはずです/etc/ansible/が、そのディレクトリの内容はただです:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

環境変数も定義されていないようです:

$ echo $ANSIBLE_CONFIG
# blank line

Ansibleはできる限り機能します(localがなく、ユーザーdirのフォルダーにansible.cfg何もありませんansible)が、私は混乱しています。

誰かが私がここに来ていないことを説明してもらえますか?

回答:


14

私が知っていることから、ユーザーレベルの構成設定のために、Ansible configファイル(ansible.cfg)がここにあるかもしれません:

~/.ansible.cfg

ここにあるシステム全体の構成と同様に。あなたはそのようなファイルを見つけることができないと述べています:

 /etc/ansible/ansible.cfg

どういうわけか、システムに複数のユーザーがいる場合、おそらく~/.ansible.cfg忘れているユーザーディレクトリの1つにフローティングがありますか?

あなたはそれを使ってインストールしたかもしれないと言いますが、AnsibleのHomebrew式をpipチェックすると、それはごく最近9月4日にバージョン1.9.2から1.9.3にバンプされました。Homebrewでインストールしたのでしょうか?

そして、あなたの主な関心事ansible.cfgは必要かどうかのようです:

Ansibleはできる限り機能します(localがなく、ユーザーdirのフォルダーにansible.cfg何もありませんansible)が、私は混乱しています。

誰かが私がここに来ていないことを説明してもらえますか?

はい、設定なしで正常に動作するはずです。ほとんどのソフトウェアでは、構成ファイルはコアシステムのデフォルトをオーバーライドするだけです。ansible.cfg欠落している場合でも、Ansibleは動作しますが、コアシステムのデフォルトのみを使用しています。Ansibleの公式ドキュメントで説明されているように:

Ansibleの特定の設定は、構成ファイルを介して調整できます。ストック構成はほとんどのユーザーにとって十分なはずですが、それらを変更したい理由があるかもしれません。

変更を行って、構成ファイルで使用することができます。構成ファイルは、次の順序で処理されます。

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

どちらの場所にもありません。そして、私は唯一のユーザーです。gitリポジトリからコピーして、それらのディレクトリの1つに配置することができたと思います。
MikeiLL

良い電話。homebrew経由ではインストールされませんでしたが、バージョン1.9.2でした。現時点ではpipを使用して再インストールしています...
MikeiLL

現在は1.9.3ですが、上記のいずれの場所にもconfigディレクトリが見つかりません。があり~/.ansible/cp/etc/ansible/同じ内容です。
MikeiLL

ありがとう。理にかなっています。ストック設定が参照ansible.cfgファイルのいずれかに正常に保存されているかどうかはわかりませんでした。
MikeiLL

1
@MikeiLLああ、心配しないでください。私の最後の編集は、あなたの懸念をようやく理解したときでした。「コアのデフォルトがありますが、デフォルトを上書きするユーザー設定ファイルが見つかった場合」というロジックでは動作しない、よく知られたソフトウェアを考えることはできません。システム全体が外部構成ファイルに依存している場合に発生する大きなセキュリティ/安定性リスクは、そのファイルがなくなった場合、システム全体が崩壊することです。良い計画ではありません。構成ファイルが欠落していても、何も悪いことが起こらないことを理解できたのは幸いです。
JakeGould

13

homebrew式には、文字列を置き換える/etc/ansibleconstants.pyして/usr/local/etc/ansible。私には悪いジュジュのようです。

あとはありませんでし/usr/local/etc/ansiblebrew install ansible。ただし、有効なものをansible.cfgそこに置くと、それが光栄になることを確認しました(今のところ)。

私の推奨事項:

  1. を使用brewしてインストールしないでくださいAnsible
  2. 構成がのようなシステム環境グローバルに依存しないことを明示してください /etc/ansible/ansible.cfg

コード参照:

brew ansible formula replacement#475:https : //github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py#61:https : //github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61


homebrewはユーザー空間で動作するため、すべてが/ usr / localの下にあります。これは結構です。
ガガリン

3

OSXでは、pipを使用してansibleをインストールしましたが、ansible.cfgが/ etc / ansibleまたはホームディレクトリに存在しないことがわかりました。

ソース:https : //github.com/ansible/ansible/issues/18512

通常、pipは構成ファイルをインストールせず、ansipを使用したpipも同様です。ansibleを試してみたい場合、通常はansible.cfgファイルがなくても機能します。(インベントリを指定する必要がありますが、必要に応じてファイルではなくコマンドラインで指定できます)。サンプルの構成ファイルを取得して適応させる場合は、https//github.com/ansible/ansible/blob/devel/examples/ansible.cfgの tarballまたはソースリポジトリから取得できます。

インベントリファイルについては、http//docs.ansible.com/ansible/intro_inventory.htmlを参照してください。コマンドラインでインベントリのホストを指定するには、次のようにします。

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

コマンドラインで単一のホストを指定する場合は、インベントリ文字列の末尾にコンマを使用します。

ansible -i 'host1,' all -m command -a 'hostname'

2

Homebrewは/etc/ansibleディレクトリを作成せず、設定ファイルやホストファイルも作成しません。ただし、/etc/ansibleディレクトリを作成し、その構成をgithubリポジトリからディレクトリにコピーすると、/etc/ansibleそれが構成として認識されます。

また、その構成に移動して、インベントリの場所を指定する行のコメントを解除することもできます。

インベントリ= / etc / ansible / hosts

これを行うと、ansibleはhomebrewインストールでも他のインストールと同じように動作し、オンラインで見つけたドキュメントはhomebrewバージョンでも利用できます。


/ usr / local / etc /が認識されませんでした。/ etc / ansible /ディレクトリを作成して、ホストとansible.cfgを移動してみました。
aelkz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.