Skip to main content
Code Review

Return to Question

Bumped by Community user
Tweeted twitter.com/StackCodeReview/status/1465833051406192644
added 541 characters in body
Source Link
yodog
  • 229
  • 1
  • 7
- 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

  1. 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
  1. 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

  1. 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
  1. 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.
edited tags; edited title
Link
200_success
  • 145.6k
  • 22
  • 190
  • 479

first ansible Ansible playbook works but could be better (installs docker swarm)to install Docker Swarm

added 6 characters in body
Source Link
yodog
  • 229
  • 1
  • 7
- 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
```
Source Link
yodog
  • 229
  • 1
  • 7
Loading
default

AltStyle によって変換されたページ (->オリジナル) /