- 更新
2014-05-07
- バージョン
0.0.1
- 作者
@voluntas
- URL
- version
1.6.0
デプロイを行う場合、サーバ毎に鍵を登録するのが面倒です。 特に GitHub を使っている場合は色々だるくなります。 ということで ssh -A と同じ効果を付与するようにしてみます。
- OS
CentOS 6.4 64 bit
念のため sudo の場合でも動作するように書いている
プロビジョン:
$ ssh-agent zsh
$ ssh-add
$ ansible-playbook -i ansible_hosts provision.yml
デプロイ:
$ ssh-agent zsh
$ ssh-add
$ ansible-playbook -i ansible_hosts deploy.yml
ansible ディレクトリ構成:
asnbile/
ansible.cfg
provision.yml
deploy.yml
roles/
core/
tasks/
main.yml
files/
ssh/
ssh_config
ansible.cfg:
[ssh_connection]
ssh_args = -o ForwardAgent=yes
provision.yml:
---
- hosts: vagrant
user: vagrant
roles:
- core
deploy.yml:
---
- hosts: vagrant
user: vagrant
tasks:
- git: repo=git@github.com:voluntas/example.git
dest=example
version=master
core/files/ssh/ssh_config:
# 以下の情報を追記した ssh_config を用意してください
StrictHostKeyChecking no
core/tasks/main.yml:
- copy: src=ssh/ssh_config dest=/etc/ssh/ssh_config
- yum: name={{ item }} state=latest
with_items:
- git
- shell: grep -q SSH_AUTH_SOCK /etc/sudoers
register: result
failed_when: result.rc not in [0, 1]
- shell: echo 'Defaults env_keep += "SSH_AUTH_SOCK"' >> /etc/sudoers
when: result.rc == 1
- git: repo=git@github.com:voluntas/example.git
dest=example
version=master
アドバイスありがとうございます! 修正させて頂きました。