2017-12-21 9 views
-2

ファイルの特定のセクションで行の最後にテキストを追加する方法があるかどうかを知りたい場合は、やりたいこと:このようなファイルのINIファイルの特定のセクションに行を追加する可能性があります

思う:

[section01] 
path = /home/section01 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada 

[section02] 
path = /home/section02 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada 

[section03] 
path = /home/section03 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada 

私は、この "新規ファイル" を取得するには、[section02]でhost_allowに "ブラジル" を追加したいと思い

[section01] 
path = /home/section01 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada 

[section02] 
path = /home/section02 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada,brazil 

[section03] 
path = /home/section03 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = mexico,usa,canada 
+1

通常、チームメイトは_ファイル全体を生成するように指示します。予想外のファイルの内容にさらされた場合、ファイルの正しい_part_を更新するソリューションが信頼できない傾向があるためです。いくつかのシステムでは、複数のファイルにまたがって設定を分割できるようにすることで、これをより簡単にします。 –

答えて

1

@Dan Farrell mentioとしてコメントにnedを付けると、部分的な更新が信頼できず、問題を起こす可能性があるため、ファイル全体を生成する方がよい。

しかし、ansible templatesを使用してこれを実行することもできます。

テンプレートファイル(例:file.ini)を以下の内容で作成します(簡潔にするため、他のブロックは削除しています)。このファイルには、完全なINIファイルの内容が含まれます。

[section02] 
path = /home/section02 
read only = yes 
list = yes 
uid = apache 
gid = apache 
hosts deny = 0.0.0.0/0.0.0.0 
hosts allow = {{allow_hosts}} 

次に、プレイブックでこのファイルをテンプレートに追加するタスクを追加します。

- name: Template INI file 
    template: 
    dest: "/path/to/some/file.ini" 
    src: file.ini 
    mode: 664 
    owner: root 
    group: root 

あなたが脚本をインスタンス

は、あなたが extra-vars経由で許可されたホストの完全なリストを渡すことができます。

ansible-playbook -i hosts --extra-vars="allow_hosts=mexico,usa,canada,brazil" my-playbook.yml

このしかし、あなたは脚本が実行された時点で許可されたホストのすべてを知っている場合にのみ、あなたのために動作します。

関連する問題