Bumped by Community user
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_worker_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
A couple queries: 1. What version of ansible are you using? 2. Why are you not using the docker_swarm module? – 0xSheepdog
- ansible [core 2.11.6]
root@minipc:~# ansible --version
ansible [core 2.11.6]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.8.10 (default, Sep 28 2021, 16:10:42) [GCC 9.3.0]
jinja version = 3.0.3
libyaml = True
- i didnt even know there was a docker_swarm module. maybe you could post an answer showing how you would write the playbook using this module? my playbook was pretty simple to write, if using the module can save time, i dont mind changing.
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_worker_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_worker_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
A couple queries: 1. What version of ansible are you using? 2. Why are you not using the docker_swarm module? – 0xSheepdog
- ansible [core 2.11.6]
root@minipc:~# ansible --version
ansible [core 2.11.6]
config file = None
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.8.10 (default, Sep 28 2021, 16:10:42) [GCC 9.3.0]
jinja version = 3.0.3
libyaml = True
- i didnt even know there was a docker_swarm module. maybe you could post an answer showing how you would write the playbook using this module? my playbook was pretty simple to write, if using the module can save time, i dont mind changing.
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_worker_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
- hosts: all
tasks:
- name: Add apt key
apt_key:
url: https://download.docker.com/linux/raspbian/gpg
state: present
- name: Remove some packages
apt:
autoclean: yes
autoremove: yes
state: absent
pkg: [python2, python-configparser, python-is-python2]
- name: Install a list of packages
apt:
update_cache: yes
pkg:
- apt-transport-https
- aptitude
- ca-certificates
- curl
- libffi-dev
- libssl-dev
- python3
- python-is-python3
- software-properties-common
- name: Get docker convenience script
shell: curl -fsSL https://get.docker.com -o get-docker.sh
args:
creates: ~/get-docker.sh
- name: Install docker
shell: sh ~/get-docker.sh
args:
creates: /usr/bin/docker
- name: Config user permissions
user: name="{{ ansible_user_id }}" groups=docker append=yes generate_ssh_key=yes
#shell: usermod -aG docker $(whoami)
- name: Install docker-compose
pip: name=docker-compose state=latest
#shell: pip3 -v install -U docker-compose
#args:
# creates: /usr/local/bin/docker-compose
- name: Start service
service: name=docker enabled=yes state=started
- name: Get docker info
shell: docker info
register: docker_info
changed_when: False
- hosts: docker_swarm_manager
tasks:
- name: Create primary swarm manager
shell: docker swarm init --advertise-addr {{ ansible_default_ipv4.address }}
when: "docker_info.stdout.find('Swarm: inactive') > 0"
- name: Get docker swarm manager ip
copy:
content: '{{ ansible_default_ipv4.address }}'
dest: '/tmp/dsm_ip'
- name: Get docker swarm manager token
shell: docker swarm join-token -q manager
register: swarm_manager_token
- copy:
content: '{{ swarm_manager_token.stdout }}'
dest: '/tmp/dsm_mt'
- name: Get docker swarm worker token
shell: docker swarm join-token -q worker
register: swarm_worker_token
- copy:
content: '{{ swarm_worker_token.stdout }}'
dest: '/tmp/dsm_wt'
- hosts: all
tasks:
- name: Join the swarm
shell: "docker swarm join --token {{ lookup('file', '/tmp/dsm_mt') }} {{ lookup('file', '/tmp/dsm_ip') }}:2377"
when: "docker_info.stdout.find('Swarm: inactive') > 0"
retries: 5
delay: 5
```
default