jborean93.win_chocolatey_server
Ansible ロール win_chocolatey_server
Windows ホストに Chocolatey Server をインストールします。
注意: このロールは chocolatey.server 0.2.5 でテストされています。新しいバージョンも動作するはずですが、保証はできません。
デフォルトの設定では、このロールは以下のことを行います。
C:\tools\chocolatey.server
にchocolatey.server
パッケージをインストール- Chocolatey Server に必要な IIS 機能をインストール
chocolatey_server_app_pool
という IIS アプリプールを作成- ポート
80
で HTTP バインディングを持つchocolatey_server_site
という IIS サイトを作成 domain
およびprivate
プロファイルのためにポート80
へのトラフィックを許可するファイアウォールルールを作成
このロールの一部として以下も設定できますが、いくつかのオプショナル変数を設定する必要があります。
- Chocolatey Server 用の API トークンを設定
- ユーザーとその SHA1 パスワードハッシュをベーシック認証で指定
- 既存または自己署名証明書を使用してサイトの HTTPS バインディングを作成
- サーバーの
install.ps1
スクリプトを設定するためのchocolatey
パッケージのパスまたは URL を指定 - サーバーで許可される最大パッケージサイズを指定
このロールを書くのを手伝ってくれた素晴らしいブログ投稿を kkolk に感謝します。投稿は こちら で読むことができます。
Chocolatey Server に新しいパッケージを追加するには、.nupkg ファイルを {{ opt_chocolatey_server_path }}\chocolatey.server\App_Data\Packages
にコピーします。サーバーはこのファイルを検出します。
注意: 最初に IIS アプリプールが温まった状態で http://server/chocolatey/Packages
に少なくとも一度移動してファイルウォッチャーを有効にする必要があります。プールのリサイクルを再起動した場合は、再度この操作を行う必要があります。
要件
- Windows Server 2008 R2 以上
- リモートホストがインターネットにアクセスできない場合は、リモートホストに Chocolatey クライアントをインストールする必要があります。
変数
必須変数
なし。このロールはデフォルトのオプションで実行されます。
オプション変数
opt_chocolatey_server_api_token
: 新しいパッケージをサーバーにアップロードするときに使用する API トークン/キー。指定しない場合は、chocolatey.server
パッケージで指定されたデフォルトトークンが使用されます。opt_chocolatey_server_credentials
: ベーシック認証の資格情報として指定するユーザー名とパスワードハッシュの辞書。キーはusername
、値はpassword
の大文字 SHA1 ハッシュです。設定しない場合、ベーシック認証は無効化され、匿名アクセスが許可されます。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/
)。これは Nuget リポジトリの名前/URL または nupkg ファイルが含まれているローカルパスである可能性があります。
Chocolatey サーバーを設定して install.ps1
スクリプトを作成し、リポジトリからインストーラーファイルを取得するには、chocolatey nupkg ファイルをダウンロードし、以下のどちらかの変数を設定します。
opt_chocolatey_server_chocolatey_path
: リモートホストからアクセス可能な Chocolatey nupkg ファイルのパス。opt_chocolatey_server_chocolatey_url
: リモートホストからアクセス可能な Chocolatey nupkg ファイルの URL。
どちらの値も設定しない場合、サーバーの 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: カスタムパスに 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.win_chocolatey_server