| 更新: | 2014-05-07 |
|---|---|
| バージョン: | 0.0.1 |
| 作者: | @voluntas |
| URL: | http://voluntas.github.io/ |
| 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
アドバイスありがとうございます! 修正させて頂きました。