Заменить все строки в файле новыми строками через ansible? - PullRequest
0 голосов
/ 23 января 2020

У меня есть файл /etc/init/test.list, в котором мне нужно удалить все строки, которые ранее присутствовали, а затем вставить в него следующие строки:

deb [arch=amd64] hello
deb [arch=amd64] world

Я хочу сделать это через ansible. Возможно ли это сделать? Я думал использовать модуль lineinfile, но я не уверен, как это сделать здесь.

  - name: replace all lines
    lineinfile: 
      dest: /etc/init/test.list

1 Ответ

1 голос
/ 23 января 2020

Если вы хотите заменить файл новым содержимым, вы можете просто скопировать локальный (или из удаленной системы) файл поверх него:

- name: example copying file with owner and permissions (from the sending machine)
  copy:
    src: /srv/myfiles/foo.conf
    dest: /etc/foo.conf
    owner: foo
    group: foo
    mode: 0644
    remote_src: no  # yes will look for the file on remote server

- name: Copy using the 'content' for inline data
  copy:
    content: '# This file was moved to /etc/other.conf'
    dest: /etc/mine.conf

Если это было сложнее, вы можете использовать шаблон :

- name: Template a file to /etc/files.conf
  template:
    src: /mytemplates/foo.j2
    dest: /etc/file.conf
    owner: bin
    group: wheel
    mode: '0644'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...