Ansible: добавить регулярное выражение в существующую строку в файле - PullRequest
0 голосов
/ 30 декабря 2018

Мне нужно использовать модули Ansible для редактирования файла ssl.conf - каждый раз, когда я импортирую новый сертификат.В данный момент я использую модуль оболочки для выполнения команды sed, но хотел бы использовать lineinfile, если это возможно

sed -i '/^SSLRequire/ s/.$/|^.*.us-gov-vodafone-1.*\//' ssl.conf -i_backup_$(date "+%m%d%y")

Данный sed удалит / present в конце строки и добавит '| ^. .us-gov-vodafone-1. / '

Я пробовал разные способы добиться этого, но не смог.

Любые предложения будут искренне оценены.

Я попробовал приведенный ниже код, но он не дает правильного результата

---
- hosts: ub2
#  user: ansible
  vars:
   test:
   - '|^.*.us-gov-vodafone-1.*/'
  tasks:
  - name: append reguler expression
    lineinfile:
     dest: /tmp/ssl.conf
     backrefs: yes
     state: present
     regexp: '^(SSLRequire(?!.*\b{{ test }}\b).*)$'
     line: '\1 {{ test }}'


PLAY [ub2] ***************************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************************
ok: [192.168.56.102]

TASK [append reguler expression] *****************************************************************************************************************************
fatal: [192.168.56.102]: FAILED! => {"changed": false, "module_stderr": "Shared connection to 192.168.56.102 closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1546198717.33-9064765281500/AnsiballZ_lineinfile.py\", line 113, in <module>\r\n    _ansiballz_main()\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1546198717.33-9064765281500/AnsiballZ_lineinfile.py\", line 105, in _ansiballz_main\r\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1546198717.33-9064765281500/AnsiballZ_lineinfile.py\", line 48, in invoke_module\r\n    imp.load_module('__main__', mod, module, MOD_DESC)\r\n  File \"/tmp/ansible_lineinfile_payload_LyoFsx/__main__.py\", line 524, in <module>\r\n  File \"/tmp/ansible_lineinfile_payload_LyoFsx/__main__.py\", line 515, in main\r\n  File \"/tmp/ansible_lineinfile_payload_LyoFsx/__main__.py\", line 264, in present\r\n  File \"/usr/lib/python2.7/re.py\", line 194, in compile\r\n    return _compile(pattern, flags)\r\n  File \"/usr/lib/python2.7/re.py\", line 251, in _compile\r\n    raise error, v # invalid expression\r\nsre_constants.error: bad character range\r\n", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
        to retry, use: --limit @/home/ansible/find_and_append_2.retry

PLAY RECAP ***************************************************************************************************************************************************
192.168.56.102             : ok=1    changed=0    unreachable=0    failed=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...