2025-09-01 15:13:47 +03:30
|
|
|
- name: Pull and run private GHCR image
|
|
|
|
hosts: all
|
|
|
|
become: true
|
|
|
|
|
|
|
|
tasks:
|
2025-09-01 16:01:24 +03:30
|
|
|
- name: Backup current resolv.conf
|
|
|
|
ansible.builtin.copy:
|
|
|
|
src: /etc/resolv.conf
|
|
|
|
dest: /etc/resolv.conf.backup
|
|
|
|
remote_src: true
|
|
|
|
owner: root
|
|
|
|
group: root
|
|
|
|
mode: '0644'
|
|
|
|
|
|
|
|
- name: Replace resolv.conf with electro version
|
|
|
|
ansible.builtin.copy:
|
|
|
|
src: /etc/resolv.conf.electro
|
|
|
|
dest: /etc/resolv.conf
|
|
|
|
remote_src: true
|
|
|
|
owner: root
|
|
|
|
group: root
|
|
|
|
mode: '0644'
|
|
|
|
|
2025-09-01 15:13:47 +03:30
|
|
|
- name: Log in to GitHub Container Registry
|
|
|
|
community.docker.docker_login:
|
|
|
|
registry_url: ghcr.io
|
|
|
|
username: "{{ ghcr_username }}"
|
|
|
|
password: "{{ ghcr_token }}"
|
|
|
|
|
|
|
|
- name: Pull image from GHCR
|
|
|
|
community.docker.docker_image:
|
|
|
|
name: "{{ image_name }}"
|
|
|
|
source: pull
|
|
|
|
|
2025-09-01 16:01:24 +03:30
|
|
|
- name: Restore original resolv.conf
|
|
|
|
ansible.builtin.copy:
|
|
|
|
src: /etc/resolv.conf.backup
|
|
|
|
dest: /etc/resolv.conf
|
|
|
|
remote_src: true
|
|
|
|
owner: root
|
|
|
|
group: root
|
|
|
|
mode: '0644'
|
|
|
|
|
|
|
|
- name: Stop stage container if it exists
|
|
|
|
docker_container:
|
|
|
|
name: echo
|
|
|
|
state: absent
|
|
|
|
|
2025-09-01 15:13:47 +03:30
|
|
|
- name: Run container from image
|
2025-09-01 16:51:42 +03:30
|
|
|
docker_container:
|
2025-09-01 15:13:47 +03:30
|
|
|
name: echo
|
|
|
|
image: "{{ image_name }}"
|
2025-09-01 16:13:14 +03:30
|
|
|
command: ["server_web"]
|
2025-09-01 15:13:47 +03:30
|
|
|
restart_policy: always
|
2025-09-01 16:51:42 +03:30
|
|
|
state: started
|
2025-09-01 16:29:40 +03:30
|
|
|
ports:
|
2025-09-01 16:30:32 +03:30
|
|
|
- 8006:80
|
|
|
|
- 8007:3000
|
2025-09-01 16:13:14 +03:30
|
|
|
networks:
|
2025-09-01 16:19:55 +03:30
|
|
|
- name: web
|
2025-09-01 16:13:14 +03:30
|
|
|
- name: inception
|
|
|
|
labels:
|
|
|
|
traefik.enable: "true"
|
2025-09-01 16:26:57 +03:30
|
|
|
traefik.docker.network: "web"
|
2025-09-01 16:13:14 +03:30
|
|
|
traefik.http.routers.iecho.entrypoints: "web,websecure"
|
|
|
|
traefik.http.routers.iecho.rule: "Host(`iecho.eron.co`)"
|
|
|
|
traefik.http.services.iecho.loadbalancer.server.port: "80"
|
|
|
|
traefik.http.routers.iecho.tls: "true"
|
2025-09-01 16:43:56 +03:30
|
|
|
traefik.http.routers.iecho.tls.certresolver: "httpresolver"
|
2025-09-01 16:13:14 +03:30
|
|
|
traefik.http.routers.iecho.service: "iecho"
|
2025-09-01 17:01:03 +03:30
|
|
|
traefik.http.routers.echo.entrypoints: "web,websecure"
|
|
|
|
traefik.http.routers.echo.rule: "Host(`echo.eron.co`)"
|
|
|
|
traefik.http.services.echo.loadbalancer.server.port: "3000"
|
|
|
|
traefik.http.routers.echo.tls: "true"
|
|
|
|
traefik.http.routers.echo.tls.certresolver: "httpresolver"
|
|
|
|
traefik.http.routers.echo.service: "echo"
|