Playbook Ansible для установки GitLab с использованием Docker Compose
Вот пример Ansible playbook для установки GitLab с использованием Docker и Docker Compose. Этот плейбук сначала устанавливает Docker и Docker Compose, а затем создает и запускает контейнер GitLab с помощью Docker Compose.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
--- - hosts: all become: yes tasks: - name: Install necessary dependencies apt: name: - apt-transport-https - ca-certificates - curl - software-properties-common state: present update_cache: yes - name: Add Docker's official GPG key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add Docker repository apt_repository: repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable state: present - name: Update apt package index apt: update_cache: yes - name: Install Docker apt: name: docker-ce state: present - name: Install Docker Compose get_url: url: https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-`uname -s`-`uname -m` dest: /usr/local/bin/docker-compose mode: '0755' - name: Create GitLab directory file: path: /srv/gitlab state: directory owner: root group: root mode: '0755' - name: Create Docker Compose file for GitLab copy: dest: /srv/gitlab/docker-compose.yml content: | version: '3.6' services: gitlab: image: 'gitlab/gitlab-ce:latest' container_name: gitlab restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com' ports: - '80:80' - '443:443' - '22:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab' - name: Start GitLab using Docker Compose command: docker-compose up -d args: chdir: /srv/gitlab - name: Wait for GitLab to start wait_for: port: 80 delay: 30 timeout: 300 |
Пояснения к playbook:
- Install necessary dependencies: Устанавливаются необходимые пакеты для работы с Docker и добавляется репозиторий Docker.
- Add Docker’s official GPG key и Add Docker repository: Добавляются ключи GPG и репозиторий Docker, чтобы убедиться, что устанавливаемые пакеты доверенные.
- Install Docker: Устанавливается Docker.
- Install Docker Compose: Docker Compose скачивается и устанавливается в
/usr/local/bin/docker-compose
. - Create GitLab directory: Создается директория
/srv/gitlab
, которая будет содержать все необходимые файлы для конфигурации, логов и данных GitLab. - Create Docker Compose file for GitLab: Создается файл
docker-compose.yml
для развертывания GitLab. В этом файле указаны порты, переменные окружения и тома для сохранения данных. - Start GitLab using Docker Compose: Запускается контейнер GitLab в фоновом режиме с помощью Docker Compose.
- Wait for GitLab to start: Ansible ожидает, пока GitLab будет доступен по HTTP, прежде чем завершить выполнение плейбука.
Дополнительно:
- Убедитесь, что имя хоста
gitlab.example.com
вdocker-compose.yml
заменено на ваш реальный домен или IP-адрес. - Для работы с HTTPS потребуется настроить сертификаты SSL. Это можно сделать через Omnibus-репозиторий GitLab в конфигурации или через внешний прокси-сервер.
Сохраните этот плейбук в файл, например install_gitlab_docker.yml
, и выполните его:
1 2 |
ansible-playbook -i hosts install_gitlab_docker.yml |
Этот плейбук автоматизирует процесс установки GitLab с использованием Docker Compose и минимизирует ручные действия.
Recommended Posts
Ошибки установки Vault в Gitlab CI пайплайне
26.02.2024