troykinsella.concourse
ansible-concourse
Роль Ansible для управления Concourse CI.
Объем
Эта роль предназначена для управления установкой веб-сервиса Concourse CI (ATC/TSA) или рабочего сервиса.
Она:
- (По желанию) создает пользователя и группу
concourse
для запуска процесса демона. - (По желанию) форматирует и монтирует том, в котором выполняются задачи Concourse.
- Устанавливает сервис
systemd
под названиемconcourse-web
и/илиconcourse-worker
. - Загружает бинарный архив Concourse с официального сайта.
- Создает обертку-скрипт, который перехватывает параметры, передаваемые в исполняемый файл.
- Устанавливает необходимые ssh-ключи, предоставленные через переменные.
Она не:
- Генерирует ssh-ключи.
- Управляет базой данных Postgres.
- Управляет облачной инфраструктурой.
Установка
ansible-galaxy install troykinsella.concourse
Ветки
master
: Concourse 7.x (7.1.0)support/6.x
: Concourse 6.xsupport/5.x
: Concourse 5.xsupport/4.x
: Concourse 4.xsupport/3.x
: Concourse 3.x
Примечание: Concourse вносит изменения в варианты команд, которые не совместимы с предыдущими версиями в рамках мажорных версий, поэтому эти ветки, скорее всего, не будут поддерживать ранние минорные или патч-ревизии мажорной версии. Последняя версия, использованная в тестировании, указана в скобках.
Переменные роли
Смотрите defaults/main.yml
для значений по умолчанию, которые не указаны ниже. Многие из этих переменных логично соотносятся с параметрами, передаваемыми бинарному файлу Concourse при запуске. Выполните concourse web -h
или concourse worker -h
для получения более подробной информации.
Примечание: Большинство переменных имеют разумные значения по умолчанию и обычно не требуют определения, но могут быть установлены для управления соответствующим поведением. См. примеры для минимального набора конфигурации.
Переменные обслуживания
concourse_force_restart
: Необязательно. По умолчанию: "no". Запускает перезапуск веб-сервисов и/или рабочих сервисов, независимо от того, изменялась ли конфигурация.
Переменные пользователя
concourse_manage_user
: Необязательно. По умолчанию: "yes". Управляет системным пользователем, которому назначена собственность на файлы.concourse_user
: Необязательно. Пользователь, который будет владеть каталогом установки Concourse и исполняемым процессом.concourse_uid
: Необязательно. Идентификатор пользователя.concourse_group
: Необязательно. Группа, которая будет владеть каталогом установки Concourse и исполняемым процессом.concourse_gid
: Необязательно. Идентификатор группы.
Переменные установки
concourse_version
: Необязательно. Версия Concourse для установки.concourse_install_prefix_dir
: Необязательно. Каталог префикса, в котором будет размещен каталог установки Concourse. В этот каталог также будет загружен архив Concourse во время установки.concourse_install_dir
: Необязательно. Путь к каталогу, в который будет распакован архив Concourse.concourse_binary_path
: Необязательно. Абсолютный путь к бинарному файлу Concourse.concourse_bin_dir
: Необязательно. Каталог, в котором находится бинарный файл Concourse и связанные скрипты.concourse_etc_dir
: Необязательно. Каталог, в котором будут созданы файлы, связанные с Concourse.concourse_archive_name
: Необязательно. Имя файла архива версии Concourse для установки.concourse_archive_url
: Необязательно. URL, по которому можно загрузить архив версии Concourse.concourse_archive_checksum
: Необязательно. Контрольная сумма архива версии Concourse для проверки загруженного архива.concourse_archive_os
: Необязательно. Операционная система, для которой загружается архив версии Concourse.concourse_archive_arch
: Необязательно. Архитектура системы, для которой загружается архив версии Concourse.concourse_archive_fetch_timeout
: Необязательно. Время ожидания в секундах для загрузки архива версии Concourse.concourse_archive_delete_after_unarchive
: Необязательно. По умолчанию: "yes". Удаляет архив версии после его распаковки.concourse_binary_mode
: Необязательно. Режим файла бинарного файла Concourse.concourse_etc_files_mode
: Необязательно. Режим файла всех файлов, хранящихся вconcourse_etc_dir
.
Общие переменные
concourse_service_enabled
: Необязательно. По умолчанию: "yes". Управляет сервисомsystemd
для экземпляра Concourseweb
и/илиworker
.concourse_service_start
: Необязательно. По умолчанию: "yes". Запускает сервис(ы)systemd
для Concourseweb
и/илиworker
.concourse_log_level
: Необязательно. Минимальный уровень логов для отображения. [debug|info|error|fatal]concourse_env_file
: Необязательно. Файл, содержащий переменные окружения, который передается в атрибутEnvironmentFile
файла юнита сервисаsystemd
. Это полезно для конфигурации, управляемой вне плейбука. Если конфигурация должна управляться плейбуком,concourse_web_env
и/илиconcourse_worker_env
- лучший выбор.
Переменные веб-сервиса
concourse_web
: Необязательно. Установите значение "yes", чтобы установить Concourse ATC.concourse_bind_ip
: Необязательно. IP-адрес, по которому будет слушаться веб-трафик.concourse_bind_port
: Необязательно. Порт, по которому будет слушаться HTTP-трафик.concourse_tls_bind_port
: Необязательно. Порт, по которому будет слушаться HTTPS-трафик.concourse_tls_certificate
: Необязательно. Содержимое TLS-сертификата для использования при завершении HTTPS-соединения.concourse_tls_certificate_path
: Необязательно. Удаленный путь файла TLS-сертификата для использования при завершении HTTPS-соединения. Обычно нужно указать толькоconcourse_tls_certificate
.concourse_tls_key
: Необязательно. Содержимое ключа TLS для использования при завершении HTTPS-соединения.concourse_tls_key_path
: Необязательно. Удаленный путь файла ключа TLS для использования при завершении HTTPS-соединения. Обычно нужно указать толькоconcourse_tls_key
.concourse_peer_address
: Необязательно. URL, по которому этот ATC может быть достигнут из других ATC в кластере.concourse_external_url
: Необязательно. URL, по которому любой ATC может быть достигнут извне.concourse_web_launcher_path
: Необязательно. Путь к скрипту, который запускает процесс веб-сервиса Concourse.concourse_web_launcher_mode
: Необязательно. Режим файла скрипта распуска веб-сервиса.concourse_cli_artifacts_dir
: Необязательно. Значение параметра--cli-artifacts-dir
.concourse_authorized_worker_keys_path
: Необязательно. Путь к файлу авторизованных ключей рабочих процессов.concourse_host_key_path
: Необязательно. Путь к файлу ключа хоста.concourse_session_signing_key
: Обязательно. Ключ подписи сессии.concourse_session_signing_key_path
: Необязательно. Путь к файлу ключа подписи сессии.concourse_encryption_key
: Необязательно. Ключ длиной 16 или 32 символа, используемый для шифрования конфиденциальных данных перед их сохранением в базе данных.concourse_old_encryption_key
: Необязательно. Ранее использованный ключ шифрования. Если предоставлен без нового ключа, данные шифруются. Если предоставлен с новым ключом, данные пересчитываются.concourse_host_key
: Обязательно. Ключ хоста.concourse_authorized_worker_keys
: Обязательно. Конкатенированные авторизованные ключи рабочих процессов.concourse_auth_duration
: Необязательно. Длительность действия токенов.concourse_resource_checking_interval
: Необязательно. Интервал проверки новых версий ресурсов.concourse_base_resource_type_defaults
: Необязательно. Хэш значений по умолчанию для типов ресурсов в кластере.concourse_base_resource_type_defaults_file
: Необязательно. Путь к файлу значений по умолчанию для типов ресурсов.concourse_web_options
: Необязательно. Другие неуправляемые параметры для передачи вconcourse
.concourse_web_env
: Необязательно. Хэш переменных окружения, доступных для процессаconcourse web
.
Переменные PostgreSQL веб-сервиса
concourse_postgres_host
: Необязательно. Хост Postgres, к которому нужно подключиться.concourse_postgres_port
: Необязательно. Порт Postgres, к которому нужно подключиться.concourse_postgres_socket
: Необязательно. Путь к сокету Unix для подключения.concourse_postgres_user
: Необязательно. Пользователь Postgres для входа.concourse_postgres_password
: Необязательно. Пароль пользователя Postgres.concourse_postgres_ssl_mode
: Необязательно. Использовать ли SSL для подключения к Postgres.concourse_postgres_ca_cert
: Необязательно. Расположение файла сертификата CA Postgres.concourse_postgres_client_cert
: Необязательно. Расположение файла клиентского сертификата Postgres.concourse_postgres_client_key
: Необязательно. Расположение файла клиентского ключа Postgres.concourse_postgres_connect_timeout
: Необязательно. Время ожидания подключения к Postgres.concourse_postgres_database
: Необязательно. Имя базы данных Postgres.
Переменные локальной аутентификации веб-сервиса
concourse_local_users
: Необязательно. Список учетных данных пользователей Concourse, которые добавляются как локальные пользователи. Элементы - это объекты с полямиname
иpassword
(см. пример). Пароли могут быть в открытом виде или закодированы с помощью bcrypt.concourse_main_team_local_users
: Необязательно. Список разрешенных локальных пользователей Concourse (из предоставленного списка локальных пользователей).
Переменные аутентификации через GitHub веб-сервиса
concourse_github_client_id
: Необязательно. Клиентский идентификатор GitHub.concourse_github_client_secret
: Необязательно. Секрет клиента GitHub.concourse_main_team_github_users
: Необязательно. Список разрешенных пользователей GitHub.concourse_main_team_github_orgs
: Необязательно. Список разрешенных организаций GitHub.concourse_main_team_github_teams
: Необязательно. Список разрешенных команд GitHub, отформатированный как "org:team".
Другие методы аутентификации веб-сервиса
Не поддерживается. Сделайте это сами, предоставив параметры команды concourse web
с помощью переменной concourse_web_options
.
Переменные рабочего сервиса
concourse_worker
: Необязательно. Установите значение "yes", чтобы установить рабочего процесса Concourse.concourse_worker_launcher_path
: Необязательно. Путь к скрипту, который запускает процесс рабочего.concourse_worker_land_path
: Необязательно. Путь к скрипту, который помещает рабочего на землю.concourse_worker_retire_path
: Необязательно. Путь к скрипту, который выводит рабочего из эксплуатации.concourse_worker_binary_mode
: Необязательно. Режим файла скрипта запуска, заземления и вывода рабочего.concourse_worker_land_on_stop
: Необязательно. По умолчанию: "no". Выполнитьconcourse land-worker
при остановке сервиса.concourse_worker_retire_on_stop
: Необязательно. По умолчанию: "yes". Выполнитьconcourse retire-worker
при остановке сервиса.concourse_work_dir
: Необязательно. Каталог, в котором рабочий выполняет свои задачи.concourse_tsa_public_key_path
: Необязательно. Путь к файлу открытого ключа TSA.concourse_tsa_worker_key_path
: Необязательно. Путь к файлу закрытого ключа рабочего.concourse_tsa_host
: Обязательно. Значение параметра--tsa-host
.concourse_tsa_public_key
: Обязательно. Открытый ключ TSA.concourse_tsa_worker_key
: Обязательно. Закрытый ключ рабочего TSA.concourse_worker_tag
: Необязательно. Значение параметра--tag
.concourse_baggageclaim_driver
: Необязательно. Драйвер для управления томами.concourse_worker_options
: Необязательно. Другие неуправляемые параметры для передачи вconcourse
.concourse_worker_env
: Необязательно. Хэш переменных окружения, доступных для процессаconcourse worker
.concourse_manage_work_volume
: Необязательно. По умолчанию: "no". Активировать управление рабочим томом.concourse_work_volume_device
: Обязательно, еслиconcourse_manage_work_volume
равно "yes". Устройство для монтирования в качестве рабочего тома.concourse_work_volume_fs_type
: Необязательно. Тип файловой системы рабочего тома. По умолчанию устанавливаетсяbtrfs
илиext4
в зависимости от значенияconcourse_baggageclaim_driver
.concourse_work_volume_fs_opts
: Необязательно. Список параметров, которые будут переданы в команду mkfs при создании файловой системы рабочего тома.concourse_work_volume_fs_force_create
: Необязательно. По умолчанию: "no". Если да, позволяет создать новую файловую систему рабочего тома на устройстве, которое уже имеет файловую систему.concourse_work_volume_fs_resize
: Необязательно. По умолчанию: "no". Если да, если размер блочного устройства рабочего тома и файловой системы различаются, увеличивает файловую систему до доступного пространства.concourse_work_volume_mount_path
: Необязательно. Каталог, в который будет монтироваться рабочий том.concourse_work_volume_mount_opts
: Необязательно. Параметры монтирования рабочего тома.
Пример плейбука
- hosts: atc
roles:
- role: troykinsella.concourse
concourse_web: yes
concourse_authorized_worker_keys:
- "{{ worker_public_key }}"
concourse_postgres_host: concoursedb.abc123.us-east-1.rds.amazonaws.com
concourse_postgres_user: concourse
concourse_postgres_password: changeme
concourse_postgres_database: atc
concourse_local_users:
- name: admin
password: my_bcrypted_password
concourse_main_team_local_users:
- admin
concourse_external_url: http://concourse.example.com
- hosts: workers
roles:
- role: troykinsella.concourse
concourse_worker: yes
concourse_tsa_host: my-atc
concourse_tsa_public_key: "{{ host_pub_key }}"
concourse_tsa_worker_key: "{{ worker_key }}"
concourse_worker_env:
CONCOURSE_GARDEN_NETWORK_POOL: 10.254.0.0/16
CONCOURSE_GARDEN_MAX_CONTAINERS: 512
CONCOURSE_GARDEN_DOCKER_REGISTRY: https://docker.my-private-registry.org
Тестирование
Предварительные условия:
- Установите Docker
Для запуска тестов serverspec:
docker build .
Участники
- gaelL
- troykinsella (Отвечающий за поддержку)
Лицензия
MIT © Troy Kinsella
ansible-galaxy install troykinsella.concourse