2013-10-30 12 views
25

Mi aspetto che questo sia piuttosto semplice. Sto utilizzando il modulo lineinfile in questo modo:In Ansible, come si aggiunge una linea alla fine di un file?

- name: Update bashrc for PythonBrew for foo user 
    lineinfile: 
    dest=/home/foo/.bashrc 
    backup=yes 
    line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}" 
    owner=foo 
    regexp='^' 
    state=present 
    insertafter=EOF 
    create=True 

Il problema che sto avendo è che è sostituire l'ultima riga del file (che è fi) con la mia nuova linea, piuttosto che aggiungendo la linea. Questo produce un errore di sintassi.

I parametri sono corretti? Ho provato a impostare regexp su entrambi '^' e '' (vuoto). C'è un altro modo per farlo?

Sto usando Ansible 1.3.3.

risposta

27

The Ansible discussion group mi ha aiutato a risolvere il problema. Il problema è il parametro regexp.

Poiché desidero che la riga venga aggiunta al file una volta sola, ho bisogno che l'espressione regolare corrisponda alla riga il più fedelmente possibile. Questo è complicato nel mio caso dal fatto che la mia linea include variabili. Ma, supponendo che la linea ha iniziato [[ -s $HOME/.pythonbrew, ho trovato il seguente essere sufficiente:

- name: Update bashrc for PythonBrew for foo user 
    lineinfile: 
    dest=/home/foo/.bashrc 
    line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}" 
    regexp="^\[\[ -s \\$HOME/\.pythonbrew" 
    owner=foo 
    state=present 
    insertafter=EOF 
    create=True 
4

Apparentemente ansible è maturato e ora (versione> 2.4.0) secondo la documentation, i valori predefiniti quando viene specificato solo la linea sarà aggiungi una riga al file di destinazione:

- name: Update bashrc for PythonBrew for foo user 
     lineinfile: 
     dest=/home/foo/.bashrc 
     line="[[ -s ${pythonbrew.bashrc_path} ]] && source {pythonbrew.bashrc_path}" 
     owner=foo 
+2

Sei tornato dal futuro? Ansible stable è 2.4 e devel is 2.5 ... 2.9 è probabile che sia rilasciato nel 2018-2019. – sorin

+0

Grazie @sorin non solo che sono tornato dal futuro sto cercando Ms Connor – shlomoa

Problemi correlati