win_chocolatey_server
Ansible Роль win_chocolatey_server
Устанавливает Chocolatey Server на хосте под управлением Windows.
Примечание: Эта роль была протестирована на chocolatey.server 0.2.5; более новые версии должны работать, но это не гарантируется.
По умолчанию эта роль будет:
- Устанавливать пакет
chocolatey.server
вC:\tools\chocolatey.server
- Устанавливать различные функции IIS, необходимые для Chocolatey сервера
- Создавать пул приложений IIS с именем
chocolatey_server_app_pool
- Создавать веб-сайт IIS с именем
chocolatey_server_site
с привязкой HTTP на порту80
- Создавать правило брандмауэра для разрешения трафика на порту
80
для профилейdomain
иprivate
Следующее также может быть настроено как часть роли, но требует настроить некоторые дополнительные переменные:
- Задать API токен для Chocolatey сервера
- Указать пользователей и их SHA1 хэш пароля для базовой аутентификации
- Создать привязку HTTPS для сайта с уже существующим или самоподписанным сертификатом
- Указать путь или URL пакета
chocolatey
для настройки скриптаinstall.ps1
сервера - Указать максимальный размер пакета, разрешенный на сервере
Я хотел бы поблагодарить kkolk за отличную статью в блоге, которая помогла мне написать эту роль. Вы можете прочитать статью здесь.
Чтобы добавить новые пакеты в установку Chocolatey сервера, скопируйте файл .nupkg в
{{ opt_chocolatey_server_path }}\chocolatey.server\App_Data\Packages
, и сервер
подберет этот файл.
Примечание: Вам нужно сначала активировать наблюдатель файлов, перейдя по адресу http://server/chocolatey/Packages
хотя бы один раз, когда пул IIS разогрет. Любые перезапуски пулов требуют, чтобы вы сделали это снова, прежде чем файлы пакетов будут подобраны в этой директории.
Требования
- Windows Server 2008 R2+
- Клиент Chocolatey должен быть установлен на удаленном хосте, если удаленный хост не может получить доступ к Интернету
Переменные
Обязательные переменные
Нет, эта роль будет работать с установленными опциями по умолчанию.
Дополнительные переменные
opt_chocolatey_server_api_token
: API токен/ключ, используемый при загрузке новых пакетов на сервер. Если не указан, будет использован токен по умолчанию, указанный в пакетеchocolatey.server
.opt_chocolatey_server_credentials
: Словарь имен пользователей и хэшей паролей, чтобы указать их в качестве учетных данных базовой аутентификации. Ключ этоusername
, а значение — верхний регистр SHA1 хэшаpassword
. Если не указано, базовая аутентификация отключена, и доступ анонимным пользователям разрешен.opt_chocolatey_server_firewall_profiles
: Профили брандмауэра, которые будут использоваться для доступа к Chocolatey Server (по умолчанию:domain, private
). Это может быть комбинацияdomain
,private
и/илиpublic
.opt_chocolatey_server_http_port
: Порт для доступа по HTTP (по умолчанию:80
).opt_chocolatey_server_https_port
: Порт для доступа по HTTPS, по умолчанию не создается привязка HTTPS, если это не указано.opt_chocolatey_server_https_certificate
: Отпечаток сертификата, используемого для привязки HTTPS, если не указано.opt_chocolatey_server_max_package_size
: Максимально допустимый размер в байтах пакета, который может храниться на сервере (по умолчанию:2147483648
).opt_chocolatey_server_path
: Корневая директория, в которую установлен пакетchocolatey.server
(по умолчанию:C:\tools
).opt_chocolatey_server_source
: Исходное местоположение пакета chocolatey.server (по умолчанию:https://chocolatey.org/api/v2/
). Это может быть имя/URL репозитория Nuget или локальный путь, содержащий файл nupkg.
Чтобы настроить Chocolatey сервер для создания скрипта install.ps1
и загрузки
инсталлятора из репозитория вместо Интернета, загрузите файл
chocolatey nupkg и задайте одну
из следующих двух переменных, указывающих на этот файл:
opt_chocolatey_server_chocolatey_path
: Путь, доступный с удаленного хоста к файлу Chocolatey nupkg.opt_chocolatey_server_chocolatey_url
: URL, доступный с удаленного хоста к файлу Chocolatey nupkg.
Если ни одно из этих значений не установлено, то скрипт install.ps1
с этого
сервера будет по умолчанию ссылаться на публичный скрипт установки на сайте Chocolatey.
Выходные переменные
Эти переменные устанавливаются как факт хоста с помощью set_fact
во время выполнения.
Их могут использовать любые дальнейшие роли или задачи для этого хоста.
out_chocolatey_server_https_certificate
: Если привязка HTTPS создана с самоподписанным сертификатом, это хэш сертификата, созданного.
Зависимости ролей
Нет
Пример плейбука
- name: установить Chocolatey Server с настройками по умолчанию
hosts: windows
gather_facts: no
roles:
- jborean93.win_chocolatey_server
- name: настроить Chocolatey с HTTPS слушателем на пользовательском пути и включить базовую аутентификацию
hosts: windows
gather_facts: no
vars:
opt_chocolatey_server_api_token: eb82582c-2214-4ce9-9689-8c823ae33e45
opt_chocolatey_server_credentials:
build-team: '{{ build_team_pass | hash("sha1") | upper }}'
test-team: '{{ test_team_pass | hash("sha1") | upper }}'
build-team: '{{ build_team_pass | hash("sha1") | upper }}'
opt_chocolatey_server_http_port: 8080
opt_chocolatey_server_https_port: 8443
opt_chocolatey_server_path: D:\tools
opt_chocolatey_server_chocolatey_url: https://internalrepo.domain/chocolatey.0.10.11.nupkg
roles:
- jborean93.win_chocolatey_server
post_tasks:
- name: вывести хэш сертификата, использованного для привязок HTTPS
debug:
var: out_chocolatey_server_https_certificate
Бэклог
Нет - предложения по функционалу приветствуются.
ansible-galaxy install jborean93/ansible-role-win_chocolatey_server