geerlingguy.jenkins
Ansible Role: Jenkins CI
RHEL/CentOSおよびDebian/UbuntuサーバーにJenkins CIをインストールします。
要件
サーバーにcurl
がインストールされている必要があります。また、新しいバージョンのJenkinsはJava 8以上が必要です(使用するOS用の新しいJavaバージョンの例については、molecule/default
ディレクトリ内のテストプレイブックを参照してください)。
ロール変数
使用可能な変数は以下にリストされ、デフォルト値が示されています(defaults/main.yml
を参照):
jenkins_package_state: present
jenkins
パッケージのインストール状態。デフォルトではこのロールはJenkinsをインストールしますが、Jenkinsをアップグレードすることはありません(パッケージベースのインストール時)。常に最新のバージョンに更新したい場合は、これをlatest
に変更します。
jenkins_hostname: localhost
システムのホスト名;通常はlocalhost
で問題ありません。これは、HTTPリクエストを通じて実行中のJenkinsインスタンスと通信するためにセットアップ中に使用されます。
jenkins_home: /var/lib/jenkins
Jenkinsのホームディレクトリで、アーティファクト、ワークスペース、プラグインを保存するために使用されます。この変数を使用して、デフォルトの/var/lib/jenkins
の場所を上書きできます。
jenkins_http_port: 8080
Jenkinsのウェブインターフェース用のHTTPポート。
jenkins_admin_username: admin
jenkins_admin_password: admin
Jenkinsが初めてインストールされたときに作成されるデフォルトの管理者アカウントの資格情報。
jenkins_admin_password_file: ""
初回インストール時に作成されるデフォルトの管理者パスワードファイル、/var/lib/jenkins/secrets/initialAdminPassword
として作成されます。
jenkins_jar_location: /opt/jenkins-cli.jar
jenkins-cli.jar
ファイルが保存される場所。これはCLIを通じてJenkinsと通信するために使用されます。
jenkins_plugins:
- blueocean
- name: influxdb
version: "1.12.1"
プロビジョニング中に自動的にインストールされるJenkinsプラグイン。デフォルトでは空のリスト([]
)です。アイテムは名前または、特定のプラグインのバージョンをピン止めするためのname
およびversion
キーを持つ辞書を使用できます。
jenkins_plugins_install_dependencies: true
インストールするJenkinsプラグインが他のプラグインの依存関係もインストールするかどうか。
jenkins_plugins_state: present
すべてのプラグインが最新のバージョンで実行されることを保証するためにlatest
を使用します。jenkins_plugins
リストで特定のバージョンが設定されたプラグインについては、present
が使用されます。
jenkins_plugin_updates_expiration: 86400
新しいupdate-center.json
ファイルがダウンロードされるまでの秒数。キャッシュファイルを使用しない場合は0に設定します。
jenkins_updates_url: "https://updates.jenkins.io"
Jenkinsプラグインのアップデートおよび更新センター情報のために使用するURL。
jenkins_plugin_timeout: 30
Jenkinsプラグインをインストールするときのサーバー接続タイムアウト(秒単位)。
jenkins_version: "2.346"
jenkins_pkg_url: "http://www.example.com"
(Optional) Jenkinsのバージョンをhttp://pkg.jenkins-ci.org/debian/
(Debian/Ubuntu)またはhttp://pkg.jenkins-ci.org/redhat/
(RHEL/CentOS)で利用可能な任意のバージョンにピン止めできます。デフォルトのパッケージURLに必要なJenkinsのバージョンがない場合、独自のURLで上書きできます;jenkins_pkg_url
を設定します(注: このロールはhttp://pkg.jenkins-ci.org/
が使用するのと同じ命名規則に依存します)。
jenkins_url_prefix: ""
Jenkinsインストール用のURLプレフィックスを設定するために使用します。このオプションは、Jenkinsの初期化java
呼び出しに--prefix={{ jenkins_url_prefix }}
として追加され、http://www.example.com{{ jenkins_url_prefix }}
のようなパスでインストールにアクセスできます。プレフィックスは/
で始める必要があります(例:/jenkins
)。
jenkins_connection_delay: 5
jenkins_connection_retries: 60
初回起動後にJenkinsに接続する際に待機する時間と回数。待機する合計時間=delay
* retries
ですので、デフォルトのロールでは300秒まで待機します。
jenkins_prefer_lts: false
デフォルトでは、このロールはプラットフォームに応じて公式リポジトリを使用してJenkinsの最新バージョンをインストールします。代わりに現在のLTSバージョンをインストールするには、これをfalse
に設定します。
デフォルトのリポジトリ(以下にリスト)は上書きすることも可能です。
# RedHat/CentOSの場合:
jenkins_repo_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.repo
jenkins_repo_key_url: https://pkg.jenkins.io/redhat{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key
# Debian/Ubuntuの場合:
jenkins_repo_url: deb https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }} binary/
jenkins_repo_key_url: https://pkg.jenkins.io/debian{{ '-stable' if (jenkins_prefer_lts | bool) else '' }}/jenkins.io.key
リポジトリファイルの追加を防ぐために、jenkins_repo_url: ''
と設定することも可能です。これは、例えば自分自身でパッケージに署名したり、内部パッケージ管理(例:Spacewalk)を実行している場合に便利です。
jenkins_options: ""
Jenkinsの起動時にsystemd
のoverride.confファイルを介してJENKINS_OPTS
に渡す追加オプション(例:HTTPのキープアライブタイムアウトの設定)をjenkins_options
変数を用いて設定できます。デフォルトでは、オプションは指定されていません。
jenkins_java_options: "-Djenkins.install.runSetupWizard=false"
systemd
のoverride.confファイル内のJenkins起動コマンド用の追加Javaオプションを、jenkins_java_options
変数で設定できます。例えば、Jenkinsが使用するタイムゾーンを設定したい場合は、-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York
を追加します。デフォルトでは、Jenkins 2.0のセットアップウィザードが無効化されるオプションが追加されます。
jenkins_init_changes:
- option: "JENKINS_OPTS"
value: "{{ jenkins_options }}"
- option: "JAVA_OPTS"
value: "{{ jenkins_java_options }}"
- option: "JENKINS_HOME"
value: "{{ jenkins_home }}"
- option: "JENKINS_PREFIX"
value: "{{ jenkins_url_prefix }}"
- option: "JENKINS_PORT"
value: "{{ jenkins_http_port }}"
Jenkinsのsystemd
のoverride.confファイルに加えられた変更;デフォルトの変更セットは、設定されたURLプレフィックス、Jenkinsホームディレクトリ、Jenkinsポートを設定し、Jenkinsの起動に対して設定されたJenkinsおよびJavaオプションを追加します。他のオプションを設定する必要がある場合は、他のオプション/値ペアを追加できます。
jenkins_proxy_host: ""
jenkins_proxy_port: ""
jenkins_proxy_noproxy:
- "127.0.0.1"
- "localhost"
Jenkinsをプロキシサーバーの背後で実行している場合は、これらのオプションを適切に設定してください。そうでなければ、Jenkinsは直接インターネット接続で構成されます。
依存関係
なし。
例プレイブック
- hosts: jenkins
become: true
vars:
jenkins_hostname: jenkins.example.com
java_packages:
- openjdk-8-jdk
roles:
- role: geerlingguy.java
- role: geerlingguy.jenkins
java_packages
は、ディストリビューションによって異なるバージョンが必要な場合があります(例:Debian 10の場合はopenjdk-11-jdk
、RHEL 7または8の場合はjava-1.8.0-openjdk
)。
ライセンス
MIT (Expat) / BSD
作者情報
このロールは、Jeff Geerlingによって2014年に作成されました。彼はAnsible for DevOpsの著者です。
ansible-galaxy install geerlingguy.jenkins