From 8be1d02f9f3b38dd79f3fe7da69de993487599c3 Mon Sep 17 00:00:00 2001 From: Mauro Torrez Date: Fri, 1 Mar 2019 11:00:08 -0300 Subject: [PATCH] commit inicial --- .gitignore | 6 +++++ README.md | 18 ++++++++++++++ defaults/main.yml | 7 ++++++ tasks/main.yml | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 defaults/main.yml create mode 100644 tasks/main.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c24c661 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*~ +\#* +.#* +*.pyc +*.bak +__pycache__ diff --git a/README.md b/README.md new file mode 100644 index 0000000..e871d0e --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Rol docker + +Este rol instala Docker en hosts Debian. Además, configura una red +interna a la que se pueden conectar los contenedores. + +## Variables + +* `docker_target_release`: Nombre del release Debian. + Valor por defecto: distribución actual del host; si no se puede + determinar, se utiliza el valor `stretch`. + +* `docker_network_name`: Nombre de la red interna a crear. + Valor por defecto: `dockernet`. + +## Variables exportadas + +El rol exporta la variable `docker_network_name`, que puede ser +utilizada en los roles sucesivos. diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..10ac159 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,7 @@ +--- +# adivinar nombre de release +docker_target_release: "{{ ansible_distribution_release if \ +ansible_distribution_release|default('NA') != 'NA' else 'stretch' }}" + +# nombre de la red interna de los contenedores +docker_network_name: "dockernet" diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..e2399a3 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,60 @@ +--- +# Rol para instalación de Docker +# A partir de instrucciones en +# https://docs.docker.com/engine/installation/linux/docker-ce/debian/ + +- name: "Instalar dependencias" + apt: + name: "python-pip" + state: "present" + +- name: "Clave repositorio APT de Docker" + apt_key: + url: "https://download.docker.com/linux/debian/gpg" + state: "present" + +- name: "Configurar repo APT de Docker" + apt_repository: + repo: "deb https://download.docker.com/linux/debian \ + {{ docker_target_release }} stable" + state: "present" + +- name: "Instalar docker" + apt: + name: "docker-ce" + state: "present" + +- name: "Habilitar containerd" + service: + name: "containerd" + state: "started" + enabled: yes + +- name: "Desinstalar python-docker de APT" + apt: + name: "python-docker" + state: "absent" + +- name: "Desinstalar python-backports.ssl-match-hostname de PIP" + pip: + name: "backports.ssl-match-hostname" + state: "absent" + +- name: "Instalar python-backports.ssl-match-hostname con APT" + apt: + name: "python-backports.ssl-match-hostname" + state: "present" + +- name: "Instalar python-docker mediante pip" + pip: + name: "docker" + state: "present" + +- name: "Red interna para contenedores" + docker_network: + name: "{{ docker_network_name }}" + state: "present" + +- name: "Exportar variables para otros roles" + set_fact: + docker_network_name: "{{ lookup('vars', 'docker_network_name') }}"