ansibleを使用する際に特別な問題があります。この質問は非常に奇妙で危険です。ファイルの特定の部分にデータを挿入するコードを書きました。つまり、[database]
sayの後に行を追加します/etc/cinder/cinder.conf
。
問題は時々タグの後ろにコンテンツを正しく追加し[database]
ますが、時にはファイルの1行を見て混乱し、# put ur infore here for [database]
実際に必要な場所の代わりにその下に必要な行を追加することです。
- name: Adding Entries in "/etc/cinder/cinder.conf"
lineinfile:
dest: "/etc/cinder/cinder.conf"
insertafter: "{{ item.inserts }}"
state: present
line: "{{ item.lines }}"
with_items:
- { inserts: '\[database\]', lines: 'rpc_backend = rabbit' }
このような状況は、本番環境では非常に危険です!データを正しく追加する方法は?
答え1
コメントの一致を防ぐには、正規表現を行の先頭に固定します。
- { inserts: '^\[database\]', lines: 'rpc_backend = rabbit' }
答え2
ini_file
モジュールが利用可能general collection
:
- name: Adding Entries in "/etc/cinder/cinder.conf"
community.general.ini_file:
path: "/etc/cinder/cinder.conf"
section: database
option: rpc_backend
value: rabbit
backup: true
コレクションをインストールするには、次を実行します。
$ ansible-galaxy collection install community.general
requirements.yaml
または、次のように追加します。
collections:
- name: community.general
version: 5.0.1
その後実行
$ ansible-galaxy install -r requirements.yaml