Ansible でファイルを編集する場合は、ansible.builtin.replace モジュールを使います。
ansible.builtin.replace の使用例
以下は /etc/yum.conf 内にある *check= の設定値を書き換える方法です。
- path に編集するファイルパスを指定します。
- regexp に編集したい内容とマッチする正規表現を指定します。
- replace にマッチした後の置換文字列を指定します。丸括弧でマッチした部分は「\1」で展開することができます。
---
- hosts: servers
tasks:
- name: Update /etc/yum.conf
become: true
ansible.builtin.replace:
path: /etc/yum.conf
regexp: '(?<=check=)(\d+)'
replace: '000\1'
実行結果:
$ ansible-playbook -i inventory.ini sample-playbook.yml
PLAY [servers] *****************************************************************
TASK [Gathering Facts] *********************************************************
ok: [aws-rhel]
TASK [Update /etc/yum.conf] ****************************************************
changed: [aws-rhel]
PLAY RECAP *********************************************************************
aws-rhel : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
確認コマンド:
~]# cat /etc/yum.conf
[main]
gpgcheck=0001
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
gpgcheck=1 が gpgcheck=0001 に置換されました。 動作確認したら設定を元に戻しておきます。
以上です。