vagrant up master
At the end this will return the tokens to add workers or managers to the swarm cluster
vagrant up worker1
vagrant up worker2
To get connected to the nodes, should use vagrant ssh
command like:
vagrant ssh [worker1|master]
vagrant up master
At the end this will return the tokens to add workers or managers to the swarm cluster
vagrant up worker1
vagrant up worker2
To get connected to the nodes, should use vagrant ssh
command like:
vagrant ssh [worker1|master]
--- | |
- hosts: all | |
become: yes | |
become_method: sudo | |
gather_facts: False | |
pre_tasks: | |
- setup: | |
gather_subset: 'network' | |
tasks: | |
- name: is docker already installed | |
shell: > | |
docker info | |
register: docker_info | |
changed_when: false | |
ignore_errors: true | |
failed_when: false | |
- name: installs docker and setup repositories | |
shell: > | |
curl -fsSL https://get.docker.com/ | sh | |
when: | |
- docker_info.stdout == "" | |
args: | |
warn: false | |
- name: enable docker | |
systemd: | |
name: docker | |
enabled: yes | |
state: reloaded | |
when: | |
- docker_info.stdout == "" | |
- name: adding user to docker | |
user: | |
name: vagrant | |
groups: docker | |
append: yes | |
- name: determine swarm status | |
shell: > | |
docker info | egrep '^Swarm: ' | |
register: swarm_status | |
when: | |
- ansible_fqdn == 'manager.test.lan' | |
changed_when: false | |
- name: enabling swarm | |
shell: > | |
docker swarm init --advertise-addr {{ ansible_eth1['ipv4']['address'] }} | |
when: | |
- ansible_fqdn == "manager.test.lan" | |
- '"inactive" in swarm_status.stdout' | |
- name: looking for the swarm worker key | |
shell: > | |
docker swarm join-token worker | |
register: swarm_worker_key | |
when: ansible_fqdn == 'manager.test.lan' | |
changed_when: false | |
- name: looking for the swarm manager key | |
shell: > | |
docker swarm join-token manager | |
register: swarm_manager_key | |
when: ansible_fqdn == 'manager.test.lan' | |
changed_when: false | |
- name: Here is the swarm worker key | |
debug: msg="{{ swarm_worker_key.stdout_lines }}" | |
when: ansible_fqdn == 'manager.test.lan' | |
- name: Here is the swarm manager key | |
debug: msg="{{ swarm_manager_key.stdout_lines }}" | |
when: ansible_fqdn == 'manager.test.lan' |
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
Vagrant.configure('2') do |config| | |
config.vm.box = 'centos/7' | |
config.vm.define 'manager' do |manager| | |
manager.vm.network 'private_network', ip: '10.10.10.10' | |
manager.vm.host_name = 'manager.test.lan' | |
end | |
%w[worker1 worker2 worker3].each_with_index do |worker, index| | |
config.vm.define worker, autostart: false do |wkr| | |
wkr.vm.network 'private_network', ip: "10.10.10.#{index + 2}" | |
wkr.vm.host_name = "worker#{index + 1}.test.lan" | |
end | |
end | |
config.vm.provider :virtualbox do |v| | |
v.customize ['modifyvm', :id, '--memory', 1024] | |
end | |
config.vm.provision :ansible_local do |ansible| | |
ansible.playbook = 'playbook.yml' | |
end | |
end |