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