2.6. カスタムのコア heat テンプレートの使用
オーバークラウドの作成時に、director は /usr/share/openstack-tripleo-heat-templates にある heat テンプレートのコアセットを使用します。このコアテンプレートコレクションをカスタマイズする場合は、以下の git ワークフローを使用してカスタムテンプレートコレクションを管理します。
手順
heat テンプレートコレクションが含まれる初期 git リポジトリーを作成します。
テンプレートコレクションを
/home/stack/templatesディレクトリーにコピーします。$ cd ~/templates $ cp -r /usr/share/openstack-tripleo-heat-templates .カスタムテンプレートのディレクトリーに移動して git リポジトリーを初期化します。
$ cd ~/templates/openstack-tripleo-heat-templates $ git init .Git のユーザー名およびメールアドレスを設定します。
$ git config --global user.name "<USER_NAME>" $ git config --global user.email "<EMAIL_ADDRESS>"<USER_NAME>を使用するユーザー名に置き換えます。<EMAIL_ADDRESS>をご自分のメールアドレスに置き換えます。初期コミットに向けて全テンプレートをステージします。
$ git add *初期コミットを作成します。
$ git commit -m "Initial creation of custom core heat templates"これで、最新のコアテンプレートコレクションを格納する初期
masterブランチが作成されます。このブランチは、カスタムブランチのベースとして使用し、新規テンプレートバージョンをこのブランチにマージします。
カスタムブランチを使用して、コアテンプレートコレクションの変更を保管します。以下の手順に従って
my-customizationsブランチを作成し、カスタマイズを追加します。my-customizationsブランチを作成して、そのブランチに切り替えます。$ git checkout -b my-customizations- カスタムブランチ内のファイルを編集します。
変更を git にステージします。
$ git add [edited files]カスタムブランチに変更をコミットします。
$ git commit -m "[Commit message for custom changes]"このコマンドにより、変更がコミットとして
my-customizationsブランチに追加されます。masterブランチを更新するには、masterからmy-customizationsにリベースすると、git はこれらのコミットを更新されたテンプレートに追加します。これは、カスタマイズをトラッキングして、今後テンプレートが更新された際にそれらを再生するのに役立ちます。
アンダークラウドの更新時には、
openstack-tripleo-heat-templatesパッケージも更新を受け取る可能性があります。このような場合には、カスタムテンプレートコレクションも更新する必要があります。openstack-tripleo-heat-templatesパッケージのバージョンを環境変数として保存します。$ export PACKAGE=$(rpm -qv openstack-tripleo-heat-templates)テンプレートコレクションのディレクトリーに移動して、更新されたテンプレート用に新規ブランチを作成します。
$ cd ~/templates/openstack-tripleo-heat-templates $ git checkout -b $PACKAGEそのブランチの全ファイルを削除して、新しいバージョンに置き換えます。
$ git rm -rf * $ cp -r /usr/share/openstack-tripleo-heat-templates/* .初期コミット用にすべてのテンプレートを追加します。
$ git add *パッケージ更新のコミットを作成します。
$ git commit -m "Updates for $PACKAGE"このブランチを master にマージします。Git 管理システム (例: GitLab) を使用している場合には、管理ワークフローを使用してください。git をローカルで使用している場合には、
masterブランチに切り替えてからgit mergeコマンドを実行してマージします。$ git checkout master $ git merge $PACKAGE
master ブランチに最新のコアテンプレートコレクションが含まれるようになりました。これで、my-customization ブランチを更新されたコレクションからリベースできます。
my-customizationブランチを更新します。my-customizationsブランチに切り替えます。$ git checkout my-customizationsこのブランチを
masterからリベースします。$ git rebase masterこれにより、
my-customizationsブランチが更新され、このブランチに追加されたカスタムコミットが再生されます。
リベース中に発生する競合を解決します。
どのファイルで競合が発生しているかを確認します。
$ git status- 特定したテンプレートファイルで競合を解決します。
解決したファイルを追加します。
$ git add [resolved files]リベースを続行します。
$ git rebase --continue
カスタムテンプレートコレクションをデプロイします。
必ず
my-customizationブランチに切り替えた状態にします。git checkout my-customizationsopenstack overcloud deployコマンドに--templatesオプションを付けて、ローカルのテンプレートディレクトリーを指定して実行します。$ openstack overcloud deploy --templates /home/stack/templates/openstack-tripleo-heat-templates [OTHER OPTIONS]
ディレクトリーの指定をせずに --templates オプションを使用すると、director はデフォルトのテンプレートディレクトリー (/usr/share/openstack-tripleo-heat-templates) を使用します。
Red Hat は、heat テンプレートコレクションを変更する代わりに 4章設定フック に記載の方法を使用することを推奨します。