Ansible-Playbook: Specify hosts on the command line


Posted:   |  More posts about ansible devops sysadmin

While we can specify what hosts to run the command through ansible command-line program, it's does not apply to ansible-playbook program. We always need to specify the hosts: attribute in our YAML playbook. It mean if we were to run someone's else playbook, we always have to edit the playbook to customize the hardcoded hosts: attribute.

Googling for this, I found the workaround (which a great resource in itself to gain insight what ansible capable for). We can use variables. So instead of the following playbook:-

- hosts: myhostname
  tasks:
    - name: Add user
      user: name=kamal
            groups=admin
            shell=/bin/bash

We can write it as:-

- hosts: $hosts
  tasks:
    - name: Add user
      user: name=kamal
            groups=admin
            shell=/bin/bash

And then run our playbook as:-

ansible-playbook -u root --extra-vars="hosts=myhostname"
Comments powered by Disqus

About me

Web developer in Malaysia. Currently work at MARIMORE Inc building internet services using Python and Django web framework.

ImportError is an error message emitted by Python when it failed to load certain module as requested by programmer. It's a very common error when someone new to the language trying it out. This website on the same theme, will try provide help for newcomers on any technologies to overcome their first hurdle.

Try most of the examples you may find here on Digital Ocean cloud service. They provide excellent VPS at a very cheaper price. Using this referral link you'll get USD10 credits upon sign up. That's enough to run single VPS with 1GB RAM for a month.

Others

I can also be found at the following sites:-

  • http://k4ml.blogspot.com/
  • http://k4ml.github.io/
  • http://metak4ml.blogspot.com/
  • http://www.mydev.my/
  • http://github.com/k4ml/

Disclaimers

The postings on this site are my own and don't necessarily represent my employer's positions, strategies or opinions.

Share