geerlingguy.jenkins

Ansible Role: Jenkins CI

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の著者です。

プロジェクトについて

Jenkins CI

インストール
ansible-galaxy install geerlingguy.jenkins
ライセンス
mit
ダウンロード
2.7M
所有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns