This is a fast workaround to force to run a playbook to a concrete host.
Important: You must to have the host added to the ansible host inventory.
You will need to convert hosts to a variable. From:
- name: Installing base server template
hosts: all
gather_facts: true
roles:
- base
- ntpenabled
To:
- name: Installing base server template
hosts: '{{ hosts }}'
gather_facts: true
roles:
- base
- ntpenabled
And now, in terminal for running the playbook:
ansible-playbook <playbook.yml> --extra-vars="hosts=<ip_or_hostname_here>"
and for vagrant:
config.vm.define "test" do |test|
test.vm.box = "chef/centos-6.6"
test.vm.network "private_network", ip: "10.1.1.13"
test.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/base.yml"
ansible.sudo = true
ansible.extra_vars = {
hosts: "ip_or_hostname_here"
}
end
end
Monday, April 27, 2015
Tuesday, April 21, 2015
Ansible + Vagrant: forget your interactive prompts (SOLVED)
If you have a playbook with something like this:
And you are trying to run it with vagrant following this Vagrantfile piece:
config.vm.define "test" do |test|
test.vm.box = "chef/centos-6.6"
test.vm.network "private_network", ip: "10.1.1.13"
test.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/test.yml"
ansible.sudo = true
end
end
This var (hosthname) is not interactive in Vagrant, you never will be asked.
What is the trick? I tried this workaround and i liked it:
So, the final config files would be:
- name: Installing test box
hosts: all
connection: paramiko
vars_prompt:
- name: "hosthname"
hosthname: "Give me a hostname:"
private: no
hosts: all
connection: paramiko
vars_prompt:
- name: "hosthname"
hosthname: "Give me a hostname:"
private: no
gather_facts: true
roles:
- base
- redisenabled
- nodebase
roles:
- base
- redisenabled
- nodebase
And you are trying to run it with vagrant following this Vagrantfile piece:
config.vm.define "test" do |test|
test.vm.box = "chef/centos-6.6"
test.vm.network "private_network", ip: "10.1.1.13"
test.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/test.yml"
ansible.sudo = true
end
end
This var (hosthname) is not interactive in Vagrant, you never will be asked.
What is the trick? I tried this workaround and i liked it:
- Just in case i would create a default value for the variable.
- Force the value of the variable in the Vagrantfile
So, the final config files would be:
- Playbook:
- name: Installing test box
hosts: all
connection: paramiko
vars_prompt:
- name: "hosthname"
hosthname: "Give me a hostname:"
private: no
hosts: all
connection: paramiko
vars_prompt:
- name: "hosthname"
hosthname: "Give me a hostname:"
private: no
default: "test01-default"
gather_facts: true
roles:
- base
- redisenabled
- nodebase
gather_facts: true
roles:
- base
- redisenabled
- nodebase
- Vagrantfile
config.vm.define "test" do |test|
test.vm.box = "chef/centos-6.6"
test.vm.network "private_network", ip: "10.1.1.13"
test.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/test.yml"
ansible.sudo = true
ansible.extra_vars = {
hosthname: "test01"
}
end
end
test.vm.box = "chef/centos-6.6"
test.vm.network "private_network", ip: "10.1.1.13"
test.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/playbooks/test.yml"
ansible.sudo = true
ansible.extra_vars = {
hosthname: "test01"
}
end
end
Wednesday, April 1, 2015
Boost C++ library RPM packages for CentOS 6
I have created some RPM packages from Boost C++ libraries, 1.54.0-8.20.2, 1.55.0, 1.56.0 1.57.0 1.58.0 and 1.59.0 for CentOS x64 (no 32bits sorry).
Building the Boost C++ Libraries with:
Performing configuration checks
- 32-bit : no
- 64-bit : yes
- arm : no
- mips1 : no
- power : no
- sparc : no
- x86 : yes
- lockfree boost::atomic_flag : yes
- has_icu builds : yes
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- zlib : yes
- iconv (libc) : yes
- icu : yes
- compiler-supports-ssse3 : yes
- compiler-supports-avx2 : no
- gcc visibility : yes
- long double support : yes
- zlib : yes
Component configuration:
- atomic : building
- chrono : building
- container : building
- context : building
- coroutine : building
- date_time : building
- exception : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- locale : building
- log : building
- math : building
- mpi : not building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- timer : building
- wave : building
Easy to add:
:)
Building the Boost C++ Libraries with:
Performing configuration checks
- 32-bit : no
- 64-bit : yes
- arm : no
- mips1 : no
- power : no
- sparc : no
- x86 : yes
- lockfree boost::atomic_flag : yes
- has_icu builds : yes
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- zlib : yes
- iconv (libc) : yes
- icu : yes
- compiler-supports-ssse3 : yes
- compiler-supports-avx2 : no
- gcc visibility : yes
- long double support : yes
- zlib : yes
Component configuration:
- atomic : building
- chrono : building
- container : building
- context : building
- coroutine : building
- date_time : building
- exception : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- locale : building
- log : building
- math : building
- mpi : not building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- timer : building
- wave : building
- Here: https://bintray.com/vicendominguez/CentOS6/boost-devel
- Or here: https://bintray.com/vicendominguez/CentOS6/
Easy to add:
sudo wget https://bintray.com/vicendominguez/CentOS6/rpm -O /etc/yum.repos.d/bintray-vicendominguez-CentOS6.repo sudo yum install boost-devel
:)
Subscribe to:
Posts (Atom)