Soru Git çekme / itme kullanarak nasıl yapılır


Ben ansible kullanarak bir çekme çekme / itme yapmaya çalışıyorum. Tek bir sunucuda çalışabilirim ve uzaktaki bir ana bilgisayarda bir git çekme / basma işlemini otomatikleştirmek veya düzenlemek istiyorum.

Şu anda ansible doc web sitesinde bunu yapmak için bir mmodule bulamadığımdan, script modülünü kullanarak betik yoluna gitmeye karar verdim

Sorun, komut dosyasında çağrılan git komutunu çalıştırdığında ansible hags

Herkes gidip ansible kullanarak gitmeyi / itmeyi nasıl çalıştırdığını biliyor mu?

Teşekkürler


4
2018-02-10 19:27


Menşei


Ansible sadece çalışıyor git pull belirli bir kullanıcı olarak. Bunu Ansible kullanıcısının kullanıcısıyla yapabiliyor musunuz? Muhtemelen repoya erişim ihtiyacı var. - ceejayoz
Whaqt ansible kullanıcısı? betikte komut ne olursa olsun uzak ana bilgisayarda çalıştırılabilir .. ansible git git komutunu geçmişti ve git komut dosyasında sıkıştı - grant tailor
Giriş ekranında (https) veya şifre sorulmasında (ssh) asılı olmadığından emin misiniz? - Mackwerk
aslında ... bu doğru olabilir ... bununla kontrol edin ... bunu belirtmek için teşekkürler - grant tailor
@Mackwerk ok aynı komut dosyasını uzaktaki ana bilgisayarda çalıştırdım ve tuşlar kullanıldığından parola sormadan çalıştı. .Service bir sunucudan betiği çalıştırırsa ..şimdi ssh ile başka bir sunucuya giriş yapar .. bu komut dosyasını, herhangi bir parola wihtout sunucudan el ile yaptığım gibi çalıştırabilmeliydi ... ama yine de takılıyor - grant tailor


Cevaplar:


Ansible'ın Git Modülü "Çek" söz konusu olduğunda bunu sizin için yapacağız, sadece komutu çalıştıran kullanıcının git repo'ya anahtar tabanlı erişimi olduğundan emin olun.

Komutun, görevinize "sudo_user" parametresini ekleyerek çalıştırdığı kullanıcıyı belirtebilirsiniz:

- name: Get stuff from git
  git: repo=git@github.com:you/your-git-repo.git dest=/opt/git-stuff
  sudo_user: <your user that has the ssh key>

Görmek https://docs.ansible.com/playbooks_intro.html sudo_user kullanımı hakkında daha fazla bilgi için.


11
2018-02-10 22:46



Bu bir klon yapacak mı? Sadece güncelleme güncellemelerini almayı istiyorum. tüm repo'yu klonlamadı. - grant tailor
itibaren docs.ansible.com/git_module.html: update - Hayır ise, orijinal deposundan yeni düzeltmeler almayın (Ansible 1.2'de eklenmiştir). Anlayışım, eğer repo zaten mevcutsa güncelleme yapılacaktır, aksi halde klonlanacak - ProfFalken
src olarak değişmiş görünüyor repo şimdi, FYI. - mlissner


Olması gereken gibi: -

tasks: - name: pull from git git: repo: git@gitlab.com:xyz.git dest: /root/Development/abc update: yes version: master

Not: Burada uzak kullanıcı root


1
2018-02-19 09:59



Temelde sadece üç yıl önce kabul edilen cevabı tekrar gönderiyorsun. - ceejayoz
Ama kabul edilen cevap işe yaramıyor gibi görünüyor, git src isimli bir argümana sahip değil, bunun yerine repo kullandım. @ceejayoz - Souvik Haldar
Ayarlamak için bir düzenleme önerebilmeniz gerekir. Tam dokümanlara bağlantı yapar. - ceejayoz


bunu deneyebilirsin

- git:
    repo: 'https://foosball.example.org/path/to/repo.git'
    dest: /srv/checkout
    version: release-0.22

tüm belgeler https://docs.ansible.com/ansible/latest/modules/git_module.html


0
2017-10-28 12:07