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