2016-11-24 1 views
0

Я новичок в возможности.Замените строку в файле конфигурации с помощью непонятного

Есть ли простой способ заменить линию, начинающуюся с option domain-name-servers в /etc/dhcp/interface-br0.conf с большим количеством IP-адресов?

option domain-name-servers 10.116.184.1,10.116.144.1; 

Я хочу добавить ,10.116.136.1

+1

['lineinfile'] (https://docs.ansible.com/ansible/lineinfile_module.html). Используйте параметры 'regexp' и' backrefs', узнайте из приведенных примеров. – techraf

ответ

3

Вы можете использовать lineinfile Ansible module для достижения этой цели.

- name: replace line 
    lineinfile: 
     dest: /etc/dhcp/interface-br0.conf 
     regexp: '^(.*)option domain-name-servers(.*)$' 
     line: 'option domain-name-servers 10.116.184.1,10.116.144.1,10.116.136.1;' 
     backrefs: yes 

regexp опция сообщает модулю, что будет содержание заменить.

Опция line заменяет ранее найденный контент новым содержимым по вашему выбору.

+0

thx за подсказку, я изменил свое решение на большее количество строк – rubo77

1

Я создал роль dhcp следующим main.yaml:

--- 
- name: add all dns servers 
    lineinfile: 
    dest: /etc/dhcp/interface-br0.conf 
    regexp: '^\s*option domain-name-servers.*$' 
    line: ' option domain-name-servers 10.116.184.1,10.116.144.1,10.116.136.1;' 
    backrefs: yes 
    become: true