jborean93.win_chocolatey_server

Ansible ロール win_chocolatey_server

ビルドステータス win_chocolatey_server Ansible Galaxy ロール

Windows ホストに Chocolatey Server をインストールします。

注意: このロールは chocolatey.server 0.2.5 でテストされています。新しいバージョンも動作するはずですが、保証はできません。

デフォルトの設定では、このロールは以下のことを行います。

  • C:\tools\chocolatey.serverchocolatey.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)。これには domainprivate、および/または 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

バックログ

なし - 機能リクエストは歓迎します

プロジェクトについて

Install Chocolatey Server on Windows role

インストール
ansible-galaxy install jborean93.win_chocolatey_server
ライセンス
mit
ダウンロード
11.8k
所有者