stackhpc.os-images
注意:
このリポジトリはもはやメンテナンスされていません - 役割は今やAnsibleコレクションに移動されました ➡️ https://github.com/stackhpc/ansible-collection-openstack
OpenStack イメージ
この役割は、disk-image-builderを使用してゲストインスタンスイメージを生成し、os_image
モジュールを使用してOpenStackにアップロードします。
要件
OpenStack APIはターゲットホストからアクセス可能である必要があります。クライアントの資格情報は、環境に設定されているか、clouds.yaml
形式を使用して設定されている必要があります。
この役割は、パッケージマネージャによってインストールされたPythonパッケージに依存しているため、システムサイトパッケージが有効なvirtualenvを使用する必要があります。たとえば:
virtualenv --system-site-packages ~/venvs/dib
役割変数
os_images_package_dependencies_extra
: ビルドホストにインストールする追加パッケージのリスト。
os_images_cache
: ビルドアーティファクトをキャッシュするディレクトリへのパス。デフォルトは~/disk_images
注意
: キャッシュされたイメージがすでに存在する場合、設定に変更があっても新しいイメージは構築されません。新しい設定変更を適用するには、force_rebuild
フラグを使用します。
os_images_auth_type
: OpenStack認証エンドポイントと資格情報。デフォルトはpassword
。
os_images_auth
: OpenStack認証エンドポイントと資格情報。形式は次のディクショナリの形です:
auth_url
: Keystone認証エンドポイントのURL。デフォルトはOS_AUTH_URL
。project
: OpenStackテナント/プロジェクト。デフォルトはOS_TENANT_NAME
。username
: OpenStackユーザー名。デフォルトはOS_USERNAME
。password
: OpenStackパスワード。デフォルトはOS_PASSWORD
。
os_images_region
: 画像をアップロードするリージョンを定義します。デフォルトはなし。
os_images_cacert
: CA証明書バンドルへのオプションのパス。
os_images_interface
: サービスカタログから取得するエンドポイントURLのタイプ。public
、admin
、またはinternal
のいずれかになります。
os_images_list
: YAMLディクショナリのリストで、elements
とimage_url
は相互排他的で、各ディクショナリは以下を含みます:
name
: OpenStackで使用するイメージ名。elements
: 画像に組み込むdiskimage-builderの要素のリスト。image_url
: インターネット上の画像のURL。checksum
: ダウンロードした画像を検証するためのチェックサム。形式::<checksum|url>。 env
: (オプション)diskimage-builderのパラメータとして定義する環境変数。形式はKEY: VALUE
のディクショナリ。packages
: (オプション)画像にインストールするパッケージのリスト。size
: (オプション)イメージファイルシステムのサイズ。properties
: (オプション)Glanceイメージに設定するプロパティのディクショナリ。一般的なイメージプロパティは こちら にあります。type
: (オプション)イメージタイプ。DIBのデフォルトはqcow2です。イメージフォーマットは こちら にあります。force_rebuild
: (オプション)イメージを常に構築するかどうかを示すブールフラグ(以前に同名のイメージが構築されていても)。os_images_upload
がTrue
に設定されている場合、Glanceのイメージは新しく構築されたイメージに置き換えられます。設定しないと、デフォルトはos_images_force_rebuild
になります。is_public
: (オプション)画像がすべてのプロジェクトに対して可視化されるか、プライベートに保たれるか。owner
: (オプション)アップロードされた画像を所有するプロジェクトのID。
os_images_common
: すべてのイメージに含める要素のセット。デフォルトはcloud-init enable-serial-console stable-interface-names
です。
os_images_dib_pkg_name
: disk-image-builderをインストールするときにansible.builtin.pipモジュールに渡す名前パラメーターをカスタマイズします。これを使用して、バージョン管理からdisk-image-builderをインストールできます。
os_images_dib_version
: (オプション)インストールするdisk-image-builderのバージョンを設定します。デフォルトでは制約がありません。
os_images_git_elements
: githubから取得してローカルに展開し、画像に組み込む要素のオプションのリスト。次のパラメータを含むディクショナリのリストを供給します:
repo
: クローン用のgitリポジトリのURL(存在しない場合)local
: gitクローンのためのローカルパスversion
: クローンのためのオプションのgitリファレンス(ブランチ、タグ、ハッシュ)。デフォルトはHEAD
elements_path
: リポジトリ内の要素へのオプションの相対パス。
os_images_elements
: サイト固有のDIB要素のオプションのパスのリスト。
os_images_upload
: 構築したイメージをGlanceにアップロードするかどうか。デフォルトはTrue
。
os_images_force_rebuild
: DIBイメージの強制的再構築を行うかどうか。os_images_upload
がTrue
に設定されている場合、新しく構築されたイメージでGlanceのイメージが置き換えられます。デフォルトはFalse
。
os_images_public
: アップロードされたイメージが公開されるかどうか。デフォルトはTrue
- これは管理者権限を必要とします。
os_images_venv
: イメージをアップロードするためにPython依存関係をインストールするvirtualenvへのパス。
os_images_dib_venv
: イメージを構築するためにDIBをインストールするvirtualenvへのパス。
os_images_promote
: 古いイメージを退職させて新しいイメージを昇進させるかどうか。デフォルトはFalse
。
os_images_build
: イメージを構築するかどうか。
os_images_name_suffix
: イメージ昇進時に削除されるイメージの接尾辞、例えば -rc、-dev、-test など。昇進機能には必須。デフォルトは空。
os_images_hide
: Glanceのリストにイメージを隠すかどうか。イメージを隠すことは、イメージの退職/昇進プロセスのオプションとして利用可能です。デフォルトはFalse
。
依存関係
例プレイブック
以下のプレイブックはゲストイメージを生成し、OpenStackにアップロードします。
---
- name: ゲストイメージを生成しアップロードする
hosts: openstack
roles:
- role: stackhpc.os-images
os_images_auth:
auth_url: "{{ lookup('env','OS_AUTH_URL') }}"
username: "{{ lookup('env','OS_USERNAME') }}"
password: "{{ lookup('env','OS_PASSWORD') }}"
project_name: "{{ lookup('env','OS_TENANT_NAME') }}"
os_images_list:
- name: FedoraCore
elements:
- fedora
- selinux-permissive
- alaska-extras
env:
DIB_ALASKA_DELETE_REPO: "y"
DIB_ALASKA_PKGLIST: "pam-python pam-keystone"
- name: FedoraAtomic27
image_url: https://ftp.icm.edu.pl/pub/Linux/dist/fedora-alt/atomic/stable/Fedora-Atomic-27-20180326.1/CloudImages/x86_64/images/Fedora-Atomic-27-20180326.1.x86_64.qcow2
properties:
os_distro: fedora-atomic
type: qcow2
著者情報
- Stig Telfer (stig@stackhpc.com)
Role to generate guest instance images and upload to OpenStack
ansible-galaxy install stackhpc.os-images