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リファレンス(ブランチ、タグ、ハッシュ)。デフォルトはHEADelements_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