No description
Find a file
2020-02-01 09:01:55 +01:00
defaults feat: use docker swarm 2019-08-29 21:00:53 +02:00
meta feat: use docker swarm 2019-08-29 21:00:53 +02:00
tasks feat: add command option 2020-02-01 09:01:55 +01:00
test/integration feat: use docker swarm 2019-08-29 21:00:53 +02:00
.gitignore feat: add first version 2018-12-22 14:55:51 +01:00
.kitchen.yml feat: use docker swarm 2019-08-29 21:00:53 +02:00
.rubocop.yml feat: add first version 2018-12-22 14:55:51 +01:00
.yamllint feat: add first version 2018-12-22 14:55:51 +01:00
CHANGELOG.md feat: add first version 2018-12-22 14:55:51 +01:00
Gemfile feat: add first version 2018-12-22 14:55:51 +01:00
Gemfile.lock feat: use docker swarm 2019-08-29 21:00:53 +02:00
LICENSE feat: add first version 2018-12-22 14:55:51 +01:00
README.md feat: use docker swarm 2019-08-29 21:00:53 +02:00

Ansible role: Docker Swarm

License

Install and configure docker with swarm

Requirements

  • Ansible >= 2.8
  • Debian Buster

Role variables

  • docker_repo_distribution - set the distribution for docker repository (default: ansible_distribution_release)
  • docker_swarm_manager - set the cluster role (default: false)
  • docker_advertise_addr - listen address
  • docker_join_token - join token for slave node
  • docker_remote_addrs - manager addresses for slave node
  • docker_networks - array with the docker networks
- name: proxy
  config:
    - gateway: 192.168.0.1
      subnet: 192.168.0.0/16
      iprange: 192.168.0.0/16
  state: present
  • docker_services - array with the service to manage
- name: wordpress
  image: wordpress:latest
  args:
    - '--api'
  mounts:
    - source: /opt/data
      target: /usr/local/data
      type: bind
  networks:
    - net
  publish:
    - published_port: 80
      target_port: 8000
  replicas: 3
  limits:
    cpus: 0.5
    memory: 100M
  env:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_PASSWORD: wordpress
  container_labels:
    region: FR
  state: present

How to use

  • Install:
- hosts: server
  roles:
    - docker

Development

Test syntax with yamllint

  • install python and python-pip
  • install yamllint pip install yamllint
  • run yamllint .

Test syntax with ansible-lint

  • install python and python-pip
  • install yamllint pip install ansible-lint
  • run ansible-lint .

Tests with docker

  • install ruby, vagrant and virtualbox
  • install bundler gem install bundler
  • install dependencies bundle install
  • run the tests kitchen test

License

Copyright (c) 2018 Adrien Waksberg

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.