roles/role_name/vars/main.yml
. Скорее всего вы выносите эту переменную в host_vars
или group_vars
, что логично, но не достаточно, поскольку roles/role_name/vars/main.yml
имеет больший приоитет. Для решения я бы рекомендовал использовать roles/role_name/defaults/main.yml
файл, он имеет наименьший приоритет и переменная будет переопределена из любого другого места, если там объявлена. vars
на defaults
или же перенесите только эту переменную в defaults
bastion_server=x.x.x.x
ansible_user=user
ansible_ssh_common_args='-o ProxyCommand="ssh -o StrictHostKeyChecking=accept-new -W %h:%p -q {{ ansible_user }}@{{ bastion_server }}"'
- name: Generic question with multiple different responses
ansible.builtin.expect:
command: /path/to/custom/command
responses:
'Do you want to continue?[Y/n]:': 'y'
'Something else needs to be entered:': 'Enter this'
- name: Test
hosts: localhost
connection: local
tasks:
- name: run shell
shell: "ls"
register: register_shell
- name: print shell
debug:
msg: "{{ register_shell }}"
- name: Run if "Vlan 1" exist
debug:
msg: Vlan 1 exist
when: register_shell.stdout_lines is search("Vlan 1")
- name: Run if "Vlan 1" NOT exist
debug:
msg: Vlan 1 NOT exist
when: register_shell.stdout_lines is not search("Vlan 1")
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [run shell] ***************************************************************
changed: [localhost]
TASK [print shell] *************************************************************
ok: [localhost] => {
"msg": {
"changed": true,
"cmd": "ls",
"delta": "0:00:00.004657",
"end": "2022-04-15 14:44:10.370659",
"failed": false,
"rc": 0,
"start": "2022-04-15 14:44:10.366002",
"stderr": "",
"stderr_lines": [],
"stdout": "host_vars\nprovisioning.yml\nroles\nVlan 1",
"stdout_lines": [
"host_vars",
"provisioning.yml",
"roles",
"Vlan 1"
]
}
}
TASK [Run if "Vlan 1" exist] ***************************************************
ok: [localhost] => {
"msg": "Vlan 1 exist"
}
TASK [Run if "Vlan 1" NOT exist] ***********************************************
skipping: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=4 changed=1 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0
- name: For host1 and host2
hosts: host1,host2
roles:
- role1
- role2
- role3
- name: For host3
hosts: host3
roles:
- role2
- role4
{{ hostname }}
это встроенная переменная анзибла. Попробуйте назвать переменную по другому или переопределить как-то еще, типа - name: Setting hostname
hostname:
name: "{{ inventory_hostname }}"
group_vars/app_admin
:myvar: my_value_for_app_admin_group
host_vars/adm-01.local
:myvar: my_value_for_adm-01.local_only
{{ myvar }}
. ---
- include: playbook1.yml
- name: Install Common software
hosts: "{{ host }}"
gather_facts: True
user: "{{ user }}"
become: true
roles:
- role: role1
- role: role2
- include: playbook2.yml