Unverified Commit 3b2e1e1c authored by Dmitriy Safronov's avatar Dmitriy Safronov Committed by GitHub
Browse files

initial (#1)

parent b82de496
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
---
warn_list:
  - yaml[line-length]
  - no-handler
+1 −1
Original line number Diff line number Diff line
# ansible_role-template
# ansible_role-docker_compose_service
+4 −4
Original line number Diff line number Diff line
collections: []
dependencies: []
galaxy_info:
  author: template
  description: template
  author: Dmitriy Safronov
  description: "Configure Docker compose service"
  license: Apache-2.0
  min_ansible_version: "2.16"
  namespace: template
  role_name: template
  namespace: dmitriysafronov
  role_name: docker_compose_service

tasks/main.yml

0 → 100644
+54 −0
Original line number Diff line number Diff line
---

- name: Install Docker Compose plugin
  ansible.builtin.package:
    name: docker-compose-plugin
    state: present

- name: "Create working directory for Docker Compose service : {{ docker_compose_name | mandatory }}"
  ansible.builtin.file:
    path: "/opt/{{ docker_compose_name | mandatory }}"
    state: directory
    mode: '0755'
    owner: root
    group: root

- name: "Template [docker-compose.yml] into working directory for Docker Compose service : {{ docker_compose_name | mandatory }}"
  ansible.builtin.copy:
    content: |
      {{ docker_compose_content | mandatory }}
    dest: "/opt/{{ docker_compose_name | mandatory }}/docker-compose.yml"
    owner: root
    group: root
    mode: "0644"
  register: docker_compose_service_content

- name: "Template [.env] into working directory for Docker Compose service : {{ docker_compose_name | mandatory }}"
  when:
    - docker_compose_env is defined
    - docker_compose_env | length > 0
  ansible.builtin.copy:
    content: |
      {{ docker_compose_env }}
    dest: "/opt/{{ docker_compose_name | mandatory }}/.env"
    owner: root
    group: root
    mode: "0644"
  register: docker_compose_service_env

- name: "Create Docker Compose service : {{ docker_compose_name | mandatory }}"
  ansible.builtin.template:
    src: docker-compose.service.j2
    dest: "/etc/systemd/system/docker-compose_{{ docker_compose_name | mandatory }}.service"
    owner: root
    group: root
    mode: "0644"
  register: docker_compose_service

- name: "(Re)start Docker Compose service : {{ docker_compose_name | mandatory }}"
  when: docker_compose_service.changed or docker_compose_service_content.changed or docker_compose_service_env.changed
  ansible.builtin.systemd:
    state: restarted
    enabled: true
    daemon_reload: true
    name: "docker-compose_{{ docker_compose_name | mandatory }}.service"
+15 −0
Original line number Diff line number Diff line
[Unit]
Description=Docker compose: {{ docker_compose_name | mandatory }}
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
Environment="TERM=dumb"
RemainAfterExit=true

ExecStart=/usr/bin/docker compose --project-directory "/opt/{{ docker_compose_name | mandatory }}" up --remove-orphans -d
ExecStop=/usr/bin/docker compose --project-directory "/opt/{{ docker_compose_name | mandatory }}" down --remove-orphans

[Install]
WantedBy=multi-user.target