Run playbook against multiple hosts

674 views
Skip to first unread message

Nitrous

unread,
Mar 1, 2022, 10:51:15 AM3/1/22
to Ansible Project

I have defined my hosts in the variable file:

[servers]

server1 ansible_host=ip address of server 1

server2 ansible_host=ip address of server 2

etc

I have a playbook that looks like this:

- hosts: '{{ hostname }}'
  gather_facts: no
  tasks:
  - name: Include vars for vcenter
    include_vars:
        file: /etc/ansible/roles/createvm/vars/main.yml
        name: vcenter
    vars:
      ansible_become_password: "{{ domain_password }}"

  - name: Include vars of server.yaml file
    include_vars:
        file: /etc/ansible/servers/{{ hostname }}.yaml
        name: server

  - name: Wait For Connection to Continue
    wait_for_connection:
      connect_timeout: 30

  - name: Reboot to check for second round of updates
    ansible.windows.win_reboot:
      msg: "Reboot to check for second round of updates"  

  - import_role:
      name: windowsupdates

This playbook works fine if I run the command to specify 1 hostname:


ansible-playbook playbooks/file.yml -e "hostname=server1" -vvvv.

How can I run my file.yml against server1,server2 etc at the same time?

Thanks

Stefan Hornburg (Racke)

unread,
Mar 1, 2022, 11:16:33 AM3/1/22
to ansible...@googlegroups.com
I suppose that -e "hostname=servers" should do the trick.

Regards
Racke

>
> Thanks
>
> --
> You received this message because you are subscribed to the Google Groups "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com <mailto:ansible-proje...@googlegroups.com>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/adaee4d9-0c58-4d00-a355-eeb4fe8bdba2n%40googlegroups.com <https://groups.google.com/d/msgid/ansible-project/adaee4d9-0c58-4d00-a355-eeb4fe8bdba2n%40googlegroups.com?utm_medium=email&utm_source=footer>.


--
Automation expert - Ansible and friends
Linux administrator & Debian maintainer
Perl Dancer & conference hopper

OpenPGP_signature

Mike Eggleston

unread,
Mar 1, 2022, 11:22:18 AM3/1/22
to 'Axel Miesen' via Ansible Project, 'Axel Miesen' via Ansible Project
I must have missed something… why wouldn’t -i $FILE not work?
> To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/a89fe0ef-bf32-9d0e-7a1d-f0f9111b8d54%40linuxia.de.

Nitrous

unread,
Mar 1, 2022, 1:14:26 PM3/1/22
to Ansible Project
This is what I got when I ran:

TASK [Include vars of server.yaml file] ****************************************************************************************************************************************************************
task path: /etc/ansible/roles/secwinupdates/tasks/main.yml:12
fatal: [server1]: FAILED! => {
    "ansible_facts": {
        "server": {}
    },
    "ansible_included_var_files": [],
    "changed": false,
    "message": "Could not find or access '/etc/ansible/servers/win_us_bgrsuistg.yaml' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"
}
fatal: [server2]: FAILED! => {
    "ansible_facts": {
        "server": {}
    },
    "ansible_included_var_files": [],
    "changed": false,
    "message": "Could not find or access '/etc/ansible/servers/win_us_bgrsuistg.yaml' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"
}
fatal: [server3]: FAILED! => {
    "ansible_facts": {
        "server": {}
    },
    "ansible_included_var_files": [],
    "changed": false,
    "message": "Could not find or access '/etc/ansible/servers/win_us_bgrsuistg.yaml' on the Ansible Controller.\nIf you are using a module and expect the file to exist on the remote, see the remote_src option"
}

This is what my host file looks like:

[win_us_bgrsuistg]
server1 ansible_host=x.x.x.x
server2 ansible_host=x.x.x.x
server3 ansible_host=x.x.x.x

I tried to create a seperate yaml file for the servers, called win_us_bgrsuistg , which includes the server1, server2, server 3 names in it, I then got the below error:

fatal: [server1]: FAILED! => {
    "ansible_facts": {
        "server": {}
    },
    "ansible_included_var_files": [],
    "changed": false,
    "message": "/etc/ansible/servers/win_us_bgrsuistg.yaml must be stored as a dictionary/hash"

Nitrous

unread,
Mar 1, 2022, 1:26:28 PM3/1/22
to Ansible Project
Does my  win_us_bgrsuistg.yaml  file have to be in a specific format, maybe its missing some information, that I am overlooking.

Nitrous

unread,
Mar 2, 2022, 10:28:55 AM3/2/22
to Ansible Project
I got it work, by following this simple example on git hub:


Thanks everyone.

Reply all
Reply to author
Forward
0 new messages