Text-Processing

使用 ansible 將數據插入配置文件的特定部分

  • July 9, 2017

我在使用 ansible 時遇到了一個特殊的問題。這個問題非常奇怪和危險。我編寫了一個程式碼來在文件的特定部分中插入數據,即[database]在 say之後添加行/etc/cinder/cinder.conf

問題是我注意到有時它會在 tag 之後正確添加內容[database],但有時它會因為看到# put ur infore here for [database] 文件中的一行而感到困惑,並在它下面添加我們需要的行而不是它實際應該放置的位置。

  - name: Adding Entries in "/etc/cinder/cinder.conf"
    lineinfile:
     dest: "/etc/cinder/cinder.conf"
     insertafter:  "{{ item.inserts }}"
     state: present
     line: "{{ item.lines }}"
    with_items:
     - { inserts: '\[database\]', lines: 'rpc_backend = rabbit' }

這種情況在生產環境中是相當危險的!如何正確添加數據?

為避免在註釋中匹配,請將您的正則表達式錨定到行首:

- { inserts: '^\[database\]', lines: 'rpc_backend = rabbit' }

引用自:https://unix.stackexchange.com/questions/373267