Ansible пытается вычислить командную строку и терпит неудачу при сборке - PullRequest
2 голосов
/ 10 июля 2020

Попытка вставить строку в файл cfg, но, кажется, пытается оценить ее вместо этого и терпит неудачу, как в примере ниже:

- name: Set logging output
  lineinfile:
    dest: /etc/cloud/cloud.cfg.d/05_logging.cfg
    state: present
    regexp: '^output:'
    line: '''output:{all: '| tee -a /var/log/test.log'}'''

Получение в журналах:

Ошибка обнаружена в '/var/lib/jenkins/workspace/eda-ami-builder/00_build/ami/eda/packer/ansible/roles/bootstrap/tasks/yum.yml': строка 30, столбец 30, но может быть в другом месте файла в зависимости от точной синтаксической проблемы.

Оскорбительная строка выглядит так:

    regexp: '^output:'
    line: '''output:{all: '| tee -a /var/log/cloud-init-output.log'}'''
                             ^ here

1 Ответ

1 голос
/ 10 июля 2020

Вы можете пометить значения как unsafe in Ansible, чтобы сделать это:

- name: Set logging output
  lineinfile:
    dest: /etc/cloud/cloud.cfg.d/05_logging.cfg
    state: present
    regexp: '^output:'
    line: !unsafe "output:{all: '| tee -a /var/log/test.log'}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...