かべぎわブログ

技術的なことについてかけたらいいな…

Ansibleでgit cloneを実行する

今回は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   

Ansible徹底入門 クラウド時代の新しい構成管理の実現

Ansible徹底入門 クラウド時代の新しい構成管理の実現

  • 作者: 廣川英寿,平初,橋本直哉,森田邦裕,渡辺一宏
  • 出版社/メーカー: 翔泳社
  • 発売日: 2017/02/17
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る