2015-10-17 7 views
6

Wie Sie eine bestimmte Zeile existiert in einer Datei sichern und ist uncommented mit der ansible `lineinfile‘Wie stellen Sie sicher, dass eine Linie vorhanden und mit Ansible LineinFile nicht kommentar ist?

Die Linie I uncommented wollen (in .htaccess):

#php_flag display_errors on 

ich folgendes verwendet:

- name: Make sure PHP Errors are turned on 
    lineinfile: dest={{ www_path }}/.htaccess line="php_flag display_errors on" 
+0

Warum können Sie die Konfigurationsverwaltung nicht für die gesamte '.htaccess' Datei verwenden? – tedder42

Antwort

8

tatsächlich funktioniert Ihr Beispiel wie:

Inhalt des .htaccess file:

#php_flag display_errors on 

Das ansible Spiel:

- name: Make sure PHP Errors are turned on 
    lineinfile: 
    dest: "{{ www_path }}/.htaccess" 
    line: "php_flag display_errors on" 

Ergebnisse ansible-Textbuch mit diesem Spiel:

$ cat .htaccess 
#php_flag display_errors on 
php_flag display_errors on 

Wenn die Datei mit der Zeile beginnt kommentiert werden Sie sehen, ein zweite Zeile unkommentiert. Um dies zu korrigieren, einen regulären Ausdruck verwenden, der die bestehende Linie passt auf und ersetzen Sie es:

- lineinfile: 
    dest: /Users/bwhaley/tmp/file 
    regexp: '^#php_flag display_errors' 
    line: 'php_flag display_errors' 
    backrefs: yes 

Beachten Sie aber, dass mit backrefs: yes, wenn die Zeile, die Sie unkommentiert wollen, ist nicht bereits vorhanden und kommentiert wird das Spiel keine Veränderung machen überhaupt .

Verwandte Themen