--- - name: Настройка сервера bigbox hosts: all become: true vars: dns_servers: ["1.1.1.1", "8.8.8.8"] gitea_version: "latest" tasks: # 1. Исправление DNS (Domain Name System) - name: Настроить systemd-resolved ansible.builtin.copy: dest: /etc/systemd/resolved.conf content: | [Resolve] DNS={{ dns_servers | join(' ') }} FallbackDNS=1.1.1.1 8.8.8.8 notify: restart_resolved - name: Обновить кэш DNS ansible.builtin.command: resolvectl flush-caches changed_when: false failed_when: false # 2. Подготовка системы - name: Обновить кэш apt ansible.builtin.apt: update_cache: yes cache_valid_time: 3600 - name: Установить зависимости ansible.builtin.apt: name: - ca-certificates - curl - gnupg - lsb-release state: present # 3. Установка Docker - name: Добавить ключ GPG (GnuPG — GNU Privacy Guard) Docker ansible.builtin.apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Добавить репозиторий Docker ansible.builtin.apt_repository: repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" state: present - name: Установить Docker Engine ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose-plugin state: present update_cache: yes - name: Добавить пользователя в группу docker ansible.builtin.user: name: estorozhenko groups: docker append: true # 4. Деплой Gitea - name: Создать директорию для Gitea ansible.builtin.file: path: /opt/gitea state: directory mode: '0755' - name: Создать docker-compose.yml для Gitea ansible.builtin.copy: dest: /opt/gitea/docker-compose.yml content: | version: '3' services: gitea: image: gitea/gitea:{{ gitea_version }} container_name: gitea restart: always ports: - "3000:3000" - "2222:22" volumes: - ./gitea-/data environment: - USER_UID=1000 - USER_GID=1000 - name: Запустить Gitea community.docker.docker_compose: project_src: /opt/gitea state: present handlers: - name: restart_resolved ansible.builtin.systemd: name: systemd-resolved state: restarted