копировать файл только тогда, когда задача apt установила пакет в первый раз - PullRequest
0 голосов
/ 12 июня 2019

Мне интересно, как лучше всего выполнить эту (надеюсь) простую задачу в Ansible:

В книге воспроизведения, когда пакет dnsmasq apt устанавливается первый раз, сделайте резервную копию /etc/dnsmasq.conf в /etc/dnsmasq.conf.orig, прежде чем продолжить выполнение любых других задач.

Что-то вроде кода ниже?

- name: 'Ensure dnsmasq package is installed'
  apt:
    name: dnsmasq
    state: present
  notify: Backup original /etc/dnsmasq.conf file

- name: Backup original /etc/dnsmasq.conf file
  copy:
    remote_src: yes
    src: /etc/dnsmasq.conf
    dest: /etc/dnsmasq.conf.orig
  when: ONLY IF WE JUST INSTALLED THE PACKAGE ABOVE

Ответы [ 2 ]

1 голос
/ 13 июня 2019
Параметр

force: no в модуле копирования будет копировать файл, только если он не существует (т.е. вы никогда не устанавливали и не копировали исходный файл). - Zeitounator вчера

Использование 'force' добилось цели и является самым простым способом, спасибо, ребята!

(создавая это как ответ, поскольку я не могу пометить комментарий как ответ).

0 голосов
/ 12 июня 2019

Используйте dpkg-divert для этого.Это позволяет вам перенаправить файл конфигурации дистрибутива в другое место (например, /etc/dnsmasq.conf в /etc/dnsmasq.conf.dist), поэтому ваш файл конфигурации никогда не будет перезаписан версией дистрибутива, а файл (копия) дистрибутива будет сохранен в отдельный файл (ибудет обновляться вместе с пакетом).См. man dpkg-dist для доступных вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...