kibatic.docker-systemd

kibatic.docker-systemd

这个角色允许在 yml 文件中定义单元文件(类似于 docker compose),并在远程主机上生成 systemd 单元。 这可以被视为一个非常简单、轻量但强大的编排系统。

构建状态 Ansible 角色

要求

  • 主机系统上安装 Docker 守护进程

安装

$ ansible-galaxy install kibatic.docker-systemd

角色变量

# 每个容器上默认挂载的 docker 卷
# /etc/localtime 用于共享主机的时区给容器
default_volumes:
  - /etc/localtime:/etc/localtime:ro
# 所有容器数据存储的目录:卷、上传的配置文件等
container_data_home: '/home/cloud/containers'
# 传递给 docker run 的默认选项
default_docker_options: ''
# 每个容器默认的标签
default_docker_labels: []
# 默认网络名称
default_network_name: default_network
# 要从系统中删除的单元
removed_units: []

示例 Playbook

包含一个如何使用你角色的示例(例如,传递的变量作为参数)对用户来说总是很有帮助的:

- hosts:      my.awsome.host.example.com
  roles:      [ kibatic.docker-systemd ]
  vars_files: [ vars/units/my-awsome-service/units.yml ]
  tags:
    - my-awsome-service

# 这一行确保已删除的服务不在系统中
- hosts: my.awsome.host.example.com
  roles: [ kibatic.docker-systemd ]
  vars:
    removed_units:
      - my-removed-service

示例单元

systemd_units:
  - name: symfony_web
    image: my_awsome_symfony_image
    restart_unit: true # 在运行角色时是否重新启动单元(在 SQL 集群中可能会有危险)
    host_copy: []
    environment:
      SYMFONY__DATABASE__HOST: symfony_db
      SYMFONY__DATABASE__USER: root
      SYMFONY__DATABASE__PASSWORD: root
      SYMFONY__DATABASE__NAME: demo

  - name: symfony_db
    image: mysql:5.5
    host_copy: []
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: demo

许可

MIT

关于项目

Ansible role to provision docker services using systemd

安装
ansible-galaxy install kibatic.docker-systemd
许可证
mit
下载
1.1k
拥有者
Ajoutez de l'intelligence à vos systèmes