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.x
  • support/5.x: Concourse 5.x
  • support/4.x: Concourse 4.x
  • support/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 для экземпляра Concourse web и/или worker.
  • concourse_service_start: Необязательно. По умолчанию: "yes". Запускает сервис(ы) systemd для Concourse web и/или 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 .

Участники

Лицензия

MIT © Troy Kinsella

О проекте

Concourse CI. CI that scales with your project.

Установить
ansible-galaxy install troykinsella.concourse
Лицензия
mit
Загрузки
77.2k
Владелец
Staff Solutions Architect at @collectivei.