2015-06-12 27 views
9

Sto usando per controllare la mia applicazione web su istanze web EC2. Il mio codice è come segue:Modulo git Ansible non controlla un ramo

- name: Checkout the source code 
    git: 
    accept_hostkey=yes 
    depth=5 
    dest={{ webapp_dir }} 
    force=yes 
    key_file=/var/tmp/webapp_deploy_key 
    [email protected]:MyRepo/web-app.git 
    update=yes 
    version={{ webapp_version }} 
    register: git_output 

Finché webapp_version = master funziona perfettamente. Ma non appena inserisco il nome SHA1 o Branch, fallirà.

TASK: [webapp | Checkout the source code] 
************************************* 
failed: [52.17.69.83] => {"failed": true} 
msg: Failed to checkout some-branch 

È piuttosto strano.

io uso:

› ansible --version 
ansible 1.9.1 
    configured module search path = None 

risposta

7

E ancora risponderò a una delle mie domande. Il depth=5 era il killer. Beh, non usarlo se si desidera avere accesso a tutte le diverse versioni;)

+4

Per chiunque altro sbarca qui, ho dovuto rimuovere la proprietà 'depth' e quindi' rm -rf' la mia intera directory git prima che funzionasse. –

+0

Grazie @WindUpToy! Questo ha fatto il lavoro! – wegginho

+0

bene, la profondità non è davvero un problema a meno che non si voglia controllare i vari rami lì. nel mio caso rimuovere la src e correre di nuovo era sufficiente, con o senza profondità. –

-2

Questo non ha nulla a che fare con git. Il tuo YAML è sbagliato (sono sorpreso che non ti dia un errore di analisi). Si dovrebbe neanche scrivere in questo modo:

- name: Checkout the source code 
    git: > 
    accept_hostkey=yes 
    depth=5 
    dest={{ webapp_dir }} 

cioè con un > dopo la git:, che racconta YAML per concatenare le seguenti righe in un'unica riga, o come questo:

- name: Checkout the source code 
    git: 
    accept_hostkey: yes 
    depth: 5 
    dest: "{{ webapp_dir }}" 

vale a dire utilizzando i due punti invece di segni uguali. In questo caso le quotazioni intorno a {{ webapp_dir }} sono importanti (vedere ansible's documentation about this issue).

+1

Conosco il problema delle citazioni. Anche il> non è necessario in quanto 100 compiti ho scritto tutti funzionano perfettamente senza il>. Questo checkout funziona quindi non è un errore di sintassi secondo me. Funziona solo quando si specifica un ramo anziché un master. Ma per intrattenere ho provato il tuo suggerimento e ha dato lo stesso problema. Quindi posso concludere che non si tratta di un errore di sintassi. – gtheys

0

È il valore della webapp_version nel file di configurazione che potrebbe essere un colpevole. L'ho usato in questo modo e ho testato il codice che funziona per entrambi i valori master e release/1.0.

- name: Checkout the source code 
    git: 
     dest=/tmp/dump 
     force=yes 
     key_file=ghtest 
     [email protected]:Myrepo/test.git 
     update=yes 
     version='release/1.0' 
    register: git_output 
+1

Ho provato a farlo in modo esplicito come prima non funziona neanche. Vedo che non c'è nessun ramo sul server accanto al master .... – gtheys