今回はAnsibleでgit clone
を実行する方法をご紹介します。
今回はテスト用に以下のリポジトリを利用してみます。
https://github.com/takakabe/blog_RaspberryPi
前提条件
各ターゲットノードに以下のモジュールが必要です。
- git>=1.7.1 (the command line tool)
## 実行コマンド
$ ansible-playbook -i ansible_hosts git.yml
ansible_hosts
[test_server] 172.140.1.1
git.yml
- name: git_test hosts: test_server tasks: - git: repo=https://github.com:takakabe/blog_RaspberryPi.git dest=/home/ec2-user/test_git
実行確認
以下のように/home/ec2-user/test_gitがリモートリポジトリの内容と同期されたことがわかる
$ ls /home/ec2-user/test_git/ L_chika.sh dht11.py light_sensor_led.py photo.sh pre_set_resist.py python_Lchika.py rain_sencer.py script.coffee tactswitch.py tactswitch_camera.py tactswitch_pulldown_resitor.py tactswitch_shutdown.py toggle.py toggle.py2
ちなみに
Gitがターゲットノードにインストールされていない場合 以下のようなエラーとなります。
$ which git /usr/bin/which: no git in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/quick/.local/bin:/home/quick/bin)
$ ansible-playbook -i ansible_hosts git.yml PLAY [download_tes] *********************************************************************************************** TASK [Gathering Facts] ******************************************************************************************** ok: [172.140.1.1] TASK [git] ******************************************************************************************************** fatal: [172.140.1.1]: FAILED! => {"changed": false, "failed": true, "msg": "Failed to find required executable git in paths: /usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/sbin:/usr/sbin:/usr/local/sbin"} to retry, use: --limit @/home/ec2-user/ansible/git.retry PLAY RECAP ******************************************************************************************************** 172140.1.1 : ok=1 changed=0 unreachable=0 failed=1
- 作者: 廣川英寿,平初,橋本直哉,森田邦裕,渡辺一宏
- 出版社/メーカー: 翔泳社
- 発売日: 2017/02/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る