Fae_Az
(Fae Az)
August 27, 2019, 8:08am
1
I have this code in my playbook:
- hosts: standby
remote_user: root
tasks:
- name: replace hostname in config
replace:
path: /opt/agentd.conf
regexp: #\s+Hostname\=
replace: Hostname={{hname}}
backup: yes
- name: add database array in files
lineinfile:
path: /opt/zabbix_agent/share/scripts/{{ item }}
line: 'DBNAME_ARRAY=( {{dbname}} )'
insertafter: DB2PATH=/home/db2inst1/sqllib/bin/db2
backup: yes
with_items:
- Connections
- HadrAndLog
- Memory
- Regular
- name: restart service
shell: /etc/init.d/agent restart
register: command_output
become: yes
become_user: root
tags: restart
- debug: msg="{{command_output.stdout_lines}}"
tags: set_config_st
it will replace # Hostname=
in a config file with Hostname= givenhostname
and add an array in 4 scripts. array is the name of given database. then it will restart the agent to apply the changes.
when i run this command:
ansible-playbook -i /Ansible/inventory/hostfile /Ansible/provision/nconf.yml --tags set_config_st --extra-vars "hname=fazi dbname=fazidb"
i get this error:
first argument must be string or compiled pattern
i searched a bit but couldn’t find the reason. what should i do?
racke
(Stefan Hornburg)
August 27, 2019, 8:37am
2
I have this code in my playbook:
>- hosts: standby remote_user: root tasks: - name: replace hostname in config replace: path: /opt/agentd.conf regexp:
#\s+Hostname\= replace: Hostname={{hname}} backup: yes - name: add database array in files lineinfile: path:
/opt/zabbix_agent/share/scripts/{{ item }} line: 'DBNAME_ARRAY=( {{dbname}} )' insertafter:
DB2PATH=/home/db2inst1/sqllib/bin/db2 backup: yes with_items: - Connections - HadrAndLog - Memory - Regular - name:
restart service shell: /etc/init.d/agent restart register: command_output become: yes become_user: root tags: restart -
debug: msg="{{command_output.stdout_lines}}" tags: set_config_st |
it will replace |# Hostname=| in a config file with |Hostname= givenhostname| and add an array in 4 scripts. array is
the name of given database. then it will restart the agent to apply the changes.
when i run this command:
>ansible-playbook -i /Ansible/inventory/hostfile /Ansible/provision/nconf.yml --tags set_config_st --extra-vars
"hname=fazi dbname=fazidb" |
i get this error:
>first argument must be string or compiled pattern|
i searched a bit but couldn't find the reason. what should i do?
1. consider to use the Zabbix agent role from Galaxy (https://galaxy.ansible.com/dj-wasabi/zabbix-agent )
2. show the complete error, it may include the line number
Regards
Racke
Fae_Az
(Fae Az)
August 28, 2019, 2:25am
3
found the solution. i should use ‘#\s+Hostname=’ in quotes