Мне нужно использовать модули 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