2016-08-15 143 views
1

我試圖用ansible替換遠程文件中的一行。Ansible lineinfile轉義特殊字符

這是一個php文件,其中包含:

'cache' => true, 

我嘗試了很多不同的解決方案,但沒有一個奏效。我覺得我太靠近了,但我做不到。你可以幫我嗎? 這是我做了什麼:

lineinfile: "dest=/home/ubuntu/www/2.5.0/app/config/preprod/app.php regexp=^\'cache\'=> line=\'cache\' => {{ var }}" 

var是真或假,是通過命令行設置的參數。輸出顯示了一條線被添加。但這不是我想要的。先謝謝你。

回答

0

避免使用複雜的情況下param=value,使用字典風格相反,它是一個更容易閱讀:

- lineinfile: 
    dest: "/home/ubuntu/www/2.5.0/app/config/preprod/app.php" 
    regexp: "^'cache' =>" 
    line: "'cache' => {{ var | string | lower }},"