2015-04-19 31 views
14

Uzak makineyi sağlamak için Ansible'ı almaya çalışıyorum ve uzak makinenin kendi anahtarları ile ayarlanmasını ve klonlama yeteneğine sahip olmasını istiyorum Bitbucket gelen git depoları.Uzak makinenin SSH anahtarlarını ansible git modülünde nasıl kullanabilirim?

Kullanıcı kurulmuş, kendi id_rsa.pub'ına sahip ve anahtar bitbucket ile kaydedilmiş.

Ancak, Ansible Git modülünü kullandığımda, modülün, her zaman, yürütücüyü çalıştıran makineden anahtarları kullanmayı denediği anlaşılıyor.

Git modülünü uzak makineden id_rsa.pub kullanmak için nasıl alabilirim?

ilgili görev şudur:

- name: be sure prom-king has an up-to-date clone of its own repository 
    git: 
    repo: "ssh://[email protected]/prom-king.git" 
    dest: /home/promking/prom-king 
    accept_hostkey: yes 
    clone: yes 
    key_file: /home/promking/.ssh/id_rsa.pub 
    update: yes 

ilgili envanter ben uzak sunucuda ayarlanmış bir anahtar dosyası kullanarak Github gelen dağıtmak nasıl budur bu

# inventory file for use with the vagrant box in the testing directory. 
[prom-king] 
192.168.168.192 ansible_ssh_host=127.0.0.1 ansible_sudo=true ansible_connection=ssh ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=testing/.vagrant/machines/default/virtualbox/private_key 
+0

söylemeyi unutmuşum ... Ben çalışmak için klon elde edebilirsiniz https (ancak, önlemek istediğim url'de parola gerektirir) ve bu klon alındığında, dosyaların tümü de uzak makinede köküne aittir - ki bu da istenmez. – jschank

+0

Kullandığınız oyun kitabına yapıştırın. Sadece uzak makinede çalışırken, git git, yeni bir makinede ilk kez çalıştırıldığında her zaman yaptığı gibi, bilinen_hosts (evet/hayır) istemine bitbucket eklemeyi isteyen olabilir – Zasz

+0

senin oyun kitabı makineden? Açıkça çalışabilen tüm modüller, 127.0.0.1 üzerinde açık bir şekilde çalıştırılmadıkça veya local_action olarak işaretlemeden veya temsilci kullanmadıkça uzak makinede çalışır. – Zasz

cevap

21

olduğunu. git için keyfile parametre sonra çalışmazsa bir şey senin başucu kitabıyla yanlıştır: Ben doğru bu anlamak

- name: Creates .ssh directory for root 
    sudo: yes 
    file: path=/root/.ssh state=directory 

# This public key is set on Github repo Settings under "Deploy keys" 
- name: Upload the private key used for Github cloning 
    sudo: yes 
    copy: src=keys/github dest=/root/.ssh/github 

- name: Correct SSH deploy key permissions 
    sudo: yes 
    file: dest=/root/.ssh/github mode=0600 

- name: Deploy site files from Github repository 
    sudo: yes 
    git: 
    repo: [email protected]:miohtama/foobar.git 
    dest: /srv/django/foobar 
    key_file: /root/.ssh/github 
    accept_hostkey: yes 
    force: yes 
+4

Anahtarda parola varsa kilitleniyor. – Suvitruf

+0

'sudo'yu kullanarak bir yaklaşım şimdi [DEPRECASYON UYARI] 'yı gösterir: sudo/sudo_user yerine,/become_user' ı kullanın ve '_' sudo '(default)' olduğundan emin olun. – halfer

+1

'sudo: yes' ile değiştirmeyi kabul ediyorum' 'root' 'benim için gayet iyi çalışıyor ve kullanımdan kaldırma bildirimini kaldırıyor. Zaten oyun kitabının başlangıcında '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ı '' '' '' '' '' '' 'ı kurdum – halfer

8

yapmanız - ya istiyorum - klonlamak böylece uzak makineye özel anahtarı dağıtmak repo. Bunun yerine anahtar iletmeyi kullanmanız gerektiğine inanıyorum. senin .ssh/config setinde bu: Eğer yanıtlayıcı 'Bu sınırlamak istiyorsanız

ForwardAgent yes 

Ya da ansible.cfg bunu tanımlayabilirsiniz:

[ssh_connection] 
ssh_args= -A 
+0

Teşekkürler! Her halükarda, 'ssh_args = -o ForwardAgent = yes' kullanarak yerine bazı kötü uyarı mesajları alıyorum. – luvejo