No description
Find a file
Adrien Waksberg 518919196d
All checks were successful
/ lint (push) Successful in 10s
/ molecule (push) Successful in 2m30s
test: add forgejo workflow
2024-05-11 11:38:48 +02:00
.forgejo/workflows test: add forgejo workflow 2024-05-11 11:38:48 +02:00
defaults feat: add support debian12 2024-03-12 17:09:03 +01:00
handlers feat: add support debian12 2024-03-12 17:09:03 +01:00
meta feat: add support debian12 2024-03-12 17:09:03 +01:00
molecule/default test: fix molecule tests 2024-05-11 09:40:34 +02:00
tasks fix: mistake between labels and container_labels 2024-05-05 22:07:29 +02:00
templates fix: bad proxy name variable in template 2024-03-12 17:09:01 +01:00
.gitignore test: replace kitchen to molecule 2024-03-12 17:08:53 +01:00
.gitlab-ci.yml test: fix gitlab-ci.yml 2024-03-12 17:09:04 +01:00
.rubocop.yml feat: add first version 2018-12-22 14:55:51 +01:00
.yamllint test: add forgejo workflow 2024-05-11 11:38:48 +02:00
CHANGELOG.md feat: add hostname for a service 2024-03-12 17:09:02 +01:00
LICENSE feat: add first version 2018-12-22 14:55:51 +01:00
README.md test: add forgejo workflow 2024-05-11 11:38:48 +02:00

Ansible role: Docker Swarm

Version License Build

Install and configure docker with swarm

Requirements

  • Ansible >= 2.10
  • Debian Bookworm

Role variables

  • swarm_init - init the cluster, run once with the ansible option -e swarm_init=true (default: false)
  • swarm_manager - set the cluster role (default: false)
  • swarm_advertise_addr - listen address
  • swarm_join_token_manager - join token for manager (use docker swarm join-token manager after init to set this variable)
  • swarm_join_token_worker - join token for worker (use docker swarm join-token worker after init to set this variable)
  • swarm_remote_addrs - manager addresses for slave node
  • swarm_networks - array with the docker networks
proxy:
  state: present
  • swarm_services - hash with the service to manage
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
  init: false
  state: present
  • swarm_registry_logins - hash with the registry logins
gitlab:
  registry_url: registry.gitlab.com
  registry_username: myaccount
  registry_password: secret
  user: www-data
  • swarm_proxy_url - set a proxy url for http and https requests
  • swarm_proxy_ignore - array with ignore host or subnet
  - localhost
  - 10.0.0.0/8

How to use

  • Install:
- hosts: server
  roles:
    - docker

Development

Test with molecule and docker

  • install docker
  • install python3 and python3-pip
  • install molecule and dependencies pip3 install molecule 'molecule[docker]' docker ansible-lint testinfra yamllint
  • run molecule 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.