はじめに
git の設定を行う git config
コマンドに相当する git_config
モジュールがあります。
というより、最近存在を知りました。簡単な例ですが、まとめます。
- 動作環境
- ansible 2.9.14
Playbook
git config --global user.email sakana@example.com git config --global user.name sakana
に相当する Playbook です。
--- - hosts: sv gather_facts: false tasks: - name: git config git_config: scope: global name: "{{ item.name }}" value: "{{ item.value }}" loop: - name: user.name value: sakana - name: user.email value: sakana@example.com
事前確認
~/.gitconfig
には何も設定がない状態からはじめます。
[admin@centos7 ~]$ cat ~/.gitconfig cat: /home/admin/.gitconfig: No such file or directory [admin@centos7 ~]$ git config -l [admin@centos7 ~]$
Playbook 実行
Playbook を実行します。
$ ansible-playbook -i inventory.ini git.yml PLAY [sv] *************************************************************************************** TASK [git config] ******************************************************************************* changed: [sv01] => (item={'name': 'user.name', 'value': 'sakana'}) changed: [sv01] => (item={'name': 'user.email', 'value': 'sakana@example.com'}) PLAY RECAP ************************************************************************************** sv01 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
事後確認
設定されたことを確認します。
[admin@centos7 ~]$ cat ~/.gitconfig [user] name = sakana email = sakana@example.com [admin@centos7 ~]$ git config -l user.name=sakana user.email=sakana@example.com [admin@centos7 ~]$
おわりに
もう一度実行したら ok
になってくれました。
TASK [git config] ********************************************************************* ok: [netbox01] => (item={'name': 'user.name', 'value': 'sakana'}) ok: [netbox01] => (item={'name': 'user.email', 'value': 'sakana@example.com'})
command
モジュールでやってしまっても簡単に実現できるレベルですが、はやり専用モジュールがあるのは便利ですね。