2

I have workflow that create 2 virtual machines on GCP. When virtual instance created I store output with external ip to variable. In next playbook i want to use all of my ip addresses in host section. My code is:

---
- name: Download and install jenkins
  hosts: 
   - "{{ node_1_ip }}"
   - "{{ node_2_ip }}"
  tasks:
   - name: Install java
     yum:
       name: java-1.8.0-openjdk-devel
     become: true

But when I run my playbook i have warning:

[WARNING]: Could not match supplied host pattern, ignoring: 35.228.80.9

35.228.80.9 is my node_2_ip. How can I apply my playbook to this 2 machines?

2

I suspect you haven't set up the host in your inventory you can figure out where your hosts are being pulled from with the following command:

ansible-config dump | grep HOST

In practice, you probably just need to create an inventory file with the following content:

[nodes]
node01 ansible_host=IP OF YOUR FIRST NODE HERE!!!
node02 ansible_host=35.228.80.9

Then specify the -i parameter to ansible-playbook:

ansible-playbook -i inventory -k playbook.yml

Depending on your exact use cases it might be more scalable and maintainable to use GCE Dynamic Inventory, although this does require a little bit of extra setup.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.