Estou encontrando um problema ao usar o Ansible para modificar dinamicamente um arquivo de configuração do agente Zabbix. Especificamente, estou tentando empregar um módulo lineinfile ansible com um loop para atualizar várias linhas dentro do arquivo.
O script efetivamente altera os valores dentro do arquivo, mas estou enfrentando um erro de sintaxe ao tentar incorporar uma variável na configuração do agente Zabbix. O objetivo é substituir a linha "Hostname=Zabbix Server" por "Hostname=$HOSTNAME", permitindo que o valor seja obtido automaticamente da máquina alvo. Por exemplo, se o nome do computador for "computador1", o arquivo do agente deverá refletir "Hostname=computador1".
Abaixo está o trecho relevante do meu código lineinfile atual:
- name: Update Zabbix Agent Configuration
ansible.builtin.lineinfile:
path: /etc/zabbix/zabbix_agentd.conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
loop:
- { regexp: '^Server=', line: 'Server=monlocal.xyz.com' }
- { regexp: '^ServerActive=', line: 'ServerActive=monlocal.xyz.com' }
- { regexp: '^Hostname=', line: 'Hostname={{ ansible_facts['hostname'] }}' }
aqui está o erro que recebo.
The offending line appears to be:
- { regexp: '^ServerActive=', line: 'ServerActive=monlocal.xyz.com' }
^ here
There appears to be both 'k=v' shorthand syntax and YAML in this task. Only one syntax may be used.
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
Eu sei que o erro está na 3ª linha. quando removo a terceira linha obtenho o resultado esperado. qualquer ajuda será muito apreciada.
Obrigado, Yousuf
Como o arquivo de configuração padrão do Zabbix Agent é um arquivo INI com apenas
um manual de exemplo mínimo com
ini_file
módulo – Ajustar configurações em arquivos INIresultará em uma saída de
e um arquivo de configuração alterado com
Portanto, não há necessidade absoluta de "editar" o arquivo com lineinfile e expressões regulares.