inverse_inc.gitlab_buildpkg_tools
gitlab_buildpkg_tools 役割
gitlab-buildpkg-tools PPAをインストールします。 それに加えて、パイプラインでgitlab-buildpkg-toolsを使用して構築されたパッケージもインストールします。
この役割は、以下もサポートしています:
- 追加のリポジトリのインストール
- GPGキーのインストール
- パイプラインで構築されたパッケージの依存関係を満たすためのパッケージのインストール
- ELのリポジトリの有効化または無効化
- ELリポジトリの優先度設定(EL8以前にはyum-prioritiesパッケージが必要)
要件
この役割は、GitLabのパイプライン内で実行するために設計されています。パイプラインの外部から呼び出すこともできますが、その場合はいくつかの変数を手動で設定する必要があります。
役割の変数
使用可能な変数は以下にリストされています。デフォルト値についてはdefaults/main.yml
を確認してください:
gitlab_buildpkg_tools__ppa_enabled
PPAリポジトリとキーをインストールするかどうかを制御します。
gitlab_buildpkg_tools__ppa_url
PPAのURL。
gitlab_buildpkg_tools__ppa_url_deb
Debian部分のPPAのURL。
gitlab_buildpkg_tools__ppa_url_centos
CentOS部分のPPAのURL。
gitlab_buildpkg_tools__deb_ppa
Debian PPAリポジトリのパラメータ。
gitlab_buildpkg_tools__rpm_ppa
RPM PPAリポジトリのパラメータ。
gitlab_buildpkg_tools__deb_deps_pkgs
インストールするDebian依存関係のリスト。
gitlab_buildpkg_tools__deb_deps_pkgs_state
Debian依存関係の状態。
gitlab_buildpkg_tools__deb_keys
GPGキーのURLのリスト。
gitlab_buildpkg_tools__deb_combined_keys
インストールするGPGキーのリスト(PPA + 追加)。
gitlab_buildpkg_tools__deb_sources_dir
リポジトリファイルを保存するためのDebianディレクトリ。
gitlab_buildpkg_tools__deb_deps_repos
追加のDebianリポジトリのリスト。
gitlab_buildpkg_tools__deb_combined_repos
インストールするDebianリポジトリのリスト。
gitlab_buildpkg_tools__deb_pkgs
インストールするDebianパッケージのリスト。
gitlab_buildpkg_tools__deb_pkgs_state
インストールするDebianパッケージの状態。
gitlab_buildpkg_tools__rpm_deps_pkgs
インストールするCentOS依存関係のリスト。
gitlab_buildpkg_tools__rpm_deps_pkgs_state
CentOS依存関係の状態。
gitlab_buildpkg_tools__rpm_keys
GPGキーのURLまたはファイルのリスト。
gitlab_buildpkg_tools__rpm_combined_keys
インストールするGPGキーのリスト(PPA + 追加)。
gitlab_buildpkg_tools__rpm_deps_repos
追加のCentOSリポジトリのリスト。
gitlab_buildpkg_tools__rpm_enabled_repos
有効/無効にするCentOSリポジトリのリスト。
gitlab_buildpkg_tools__rpm_combined_repos
インストールするCentOSリポジトリのリスト。
gitlab_buildpkg_tools__rpm_pkgs
インストールするCentOSパッケージのリスト。
gitlab_buildpkg_tools__rpm_pkgs_state
インストールするCentOSパッケージの状態。
パイプラインで設定する環境変数(以下を参照):
CI_PROJECT_NAME
CI_PAGES_URL
DEB_PACKAGES_NAME
RPM_PACKAGES_NAME
制限
Debianの制限
- GPGキーはURLで追加する必要があります。
- Debianパッケージは名前でインストールする必要があります。
.gitlab-ci.ymlにおける環境変数
.gitlab-ci.yml
ファイルでは、DEB_PACKAGES_NAME:
のように環境変数を定義できますが、これらの変数は純粋なYAMLリストや辞書にはできません。したがって、インラインYAML構文を使用する必要があります。
例
CI内でパッケージをインストールする例
.gitlab-ci.yml
:
variables:
DEB_PACKAGES_NAME: "['apt-add-gitlab', 'gitlab-buildpkg-tools']"
RPM_PACKAGES_NAME: "['yum-add-gitlab', 'gitlab-buildpkg-tools']"
CI_PROJECT_NAME: gitlab-buildpkg-tools
CI_PAGES_URL: http://orange-opensource.gitlab.io/gitlab-buildpkg-tools
もちろん、このプレイブックをgitlab-buildpkg-tools
が使用されるパイプライン内で使用する場合は、CI_PROJECT_NAME
とCI_PAGES_URL
の変数を定義する必要はありません。
- プレイブックの例: Moleculeテスト用のplaybook.ymlを参照
追加のリポジトリとキーを使用してパッケージをインストールする例
Moleculeテスト用のplaybook-additional.ymlを参照。
エンタープライズLinuxのためにリポジトリを有効化または無効化する例
Moleculeテスト用のplaybook-enable-disable-repos.ymlを参照。
この役割のテスト
この役割はGitLab CIパイプライン内で完全にはテストできません。なぜなら、上書きできない事前定義された環境変数(CI_PAGES_URL
とCI_PROJECT_NAME
)を使用したいためです。このため、Travis CIを使用してこの役割をテストします。
ローカルテスト
前提条件:
- molecule[docker]
- ansible
- docker
例:
$ MOLECULE_DISTRO=debian11 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
$ MOLECULE_DISTRO=centos8 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
ライセンス
GPL-3.0
著者情報
Inverse inc info@inverse.ca