Install docker and docker-compose using ansible https://www.srijn.net/install-docker-and-docker-compose-using-ansible/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: Install packages using apt | |
apt: | |
name: | |
- apt-transport-https | |
- ca-certificates | |
- curl | |
- gnupg2 | |
- software-properties-common | |
state: present | |
update_cache: no | |
- name: Add Docker GPG apt Key | |
apt_key: | |
url: "{{ docker_apt_gpg_key }}" | |
state: present | |
- name: Add Docker Repository | |
apt_repository: | |
repo: "{{ docker_apt_repository }}" | |
state: present | |
update_cache: true | |
- name: Update apt and install docker-ce | |
apt: update_cache=no name=docker-ce state=present | |
- name: Check current docker-compose version. | |
command: docker-compose --version | |
register: docker_compose_vsn | |
changed_when: false | |
failed_when: false | |
check_mode: no | |
- set_fact: | |
docker_compose_current_version: "{{ docker_compose_vsn.stdout | regex_search('(\\d+(\\.\\d+)+)') }}" | |
when: | |
- docker_compose_vsn.stdout is defined | |
- name: Install or upgrade docker-compose | |
get_url: | |
url : "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64" | |
dest: /usr/local/bin/docker-compose | |
mode: 'a+x' | |
force: yes | |
when: > | |
docker_compose_current_version is not defined | |
or docker_compose_current_version is version(docker_compose_version, '<') | |
- name: Run and enable docker | |
service: | |
name: docker | |
state: started | |
enabled: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
docker_apt_release_channel: stable | |
docker_apt_arch: amd64 | |
docker_apt_repository: "deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}" | |
docker_apt_gpg_key: https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg | |
docker_compose_version: "1.24.0" |
docker_compose_current_version == ""
This helped me out a ton (especially for new server provisions that do not have docker-compose
installed yet). Thanks @schaerli!
Thank you @srijan for your article, I faced an issue during the Install or upgrade docker-compose
step
I got this error Destination /usr/local/bin/docker-compose is not writable
after some researches about the issue I tried to add become: true
to this step and it's worked for me.
so is it working with you without become
?
@NurdinDev - I have set become: true
in the main file where this task is imported. It's required for all the steps here, not just the compose step.
I got it @srijan, Thank you so much
Nice script, I needed to change the get_url section and added the checksum.
- name: Install or upgrade docker-compose
become: true
get_url:
url: "https://github.com/docker/compose/releases/download/v{{ docker_compose_version }}/docker-compose-linux-x86_64"
checksum: "sha256:https://github.com/docker/compose/releases/download/v{{ docker_compose_version }}/docker-compose-linux-x86_64.sha256"
dest: /usr/local/bin/docker-compose
mode: 'a+x'
force: yes
when: >
docker_compose_current_version is not defined
or docker_compose_current_version is version(docker_compose_version, '<')
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey many thank you for this. I have two little changes. Name for set_fact and docker_compose_current_version == "".