第5章 オーバークラウドのアップグレードの準備
本項では、アップグレードのプロセスに備えてオーバークラウドを準備します。お使いのオーバークラウドに、本項のすべてのステップが適用されるわけではありませんが、各ステップをチェックして、アップグレードのプロセスが開始する前にオーバークラウドで追加の設定が必要かどうかを確認しておくことを推奨します。
5.1. オーバークラウドサービスのダウンタイムの準備
オーバークラウドのアップグレードプロセスにより、重要なポイントで主要のサービスは無効化されます。このため、アップグレード中は、オーバークラウドサービスを使用して新規リソースを作成することはできません。この間には、オーバークラウドで実行中のワークロードはアクティブな状態のままなので、インスタンスはアップグレード中にも稼働し続けることになります。
アップグレード中にはユーザーがオーバークラウドのサービスにアクセスできないように、メンテナンスの時間帯を計画することが重要となります。
オーバークラウドのアップグレードによる影響を受ける項目
- OpenStack Platform サービス
オーバークラウドのアップグレードによる影響を受けない項目
- アップグレード中に実行するインスタンス
- Ceph Storage OSD (インスタンス向けのバックエンドストレージ)
- Linux ネットワーク
- Open vSwitch ネットワーク
- アンダークラウド
5.2. アップグレードテスト用のコンピュートノードの選択
オーバークラウドのアップグレードプロセスでは、次のいずれかを行うことができます。
- 1 つのロールのノードをすべてアップグレードする
- 個別のノードを別々にアップグレードする
オーバークラウドのアップグレードプロセスを円滑にするには、全コンピュートノードをアップグレードする前に環境内にある個々のコンピュートノードのいくつかでアップグレードをテストすると役立ちます。これにより、アップグレード中に大きな問題が発生しなくなり、ワークロードのダウンタイムを最小限に抑えることができます。
アップグレードをテストするノードを選択するにあたっては、以下の推奨事項を参考にしてください。
- アップグレードのテストには、2 台または 3 台のコンピュートノードを選択します。
- クリティカルなインスタンスが実行されていないノードを選択します。
- 必要な場合には、選択したテスト用のコンピュートノードから他のコンピュートノードにクリティカルなインスタンスを移行します。
「6章オーバークラウドのアップグレード」の手順では、全コンピュートノードでアップグレードを実行する前のアップグレードのテスト用のコンピュートノードの例として、compute-0 を使用しています。
次のステップでは、roles_data ファイルを更新して、新しいコンポーザブルサービスが環境内の適切なロールに追加されるようにします。既存の roles_data ファイルを手動で編集するには、以下に記載する OpenStack Platform 13 のロール向けの新規コンポーザブルサービスの一覧を使用してください。
5.3. 新規コンポーザブルサービス
Red Hat OpenStack Platform の今回のバージョンには、新たなコンポーザブルサービスが含まれています。自分独自のロールにカスタムの roles_data ファイルを使用する場合には、これらの新しい必須サービスを該当するロールに追加してください。
全ロール
以下の新規サービスは全ロールに適用されます。
OS::TripleO::Services::MySQLClient- 他のコンポーザブルサービス用のデータベース設定を提供する MariaDB クライアントをノード上で設定します。このサービスは、スタンドアロンのコンポーザブルサービスを使用する全ロールに追加してください。
OS::TripleO::Services::CertmongerUser- オーバークラウドが Certmonger からの証明書を必要とするようにすることができます。TLS/SSL 通信を有効にしている場合にのみ使用されます。
OS::TripleO::Services::Docker-
コンテナー化されたサービスを管理するために
dockerをインストールします。 OS::TripleO::Services::ContainersLogrotateCrond-
コンテナーログ用の
logrotateサービスをインストールします。 OS::TripleO::Services::Securetty-
ノード上で
securettyの設定ができるようにします。environments/securetty.yaml環境ファイルで有効化します。 OS::TripleO::Services::Tuned-
Linux のチューニングデーモン (
tuned) を有効化して設定します。 OS::TripleO::Services::AuditD-
auditdデーモンを追加して、ルールを設定します。デフォルトでは無効になっています。 OS::TripleO::Services::Collectd-
collectdデーモンを追加します。デフォルトでは無効になっています。 OS::TripleO::Services::Rhsm- Ansible ベースの方法を使用してサブスクリプションを設定します。デフォルトでは無効になっています。
OS::TripleO::Services::RsyslogSidecar- ロギング用のサイドカーコンテナーを設定します。デフォルトでは無効になっています。
特定のロール
以下の新規サービスは特定のロールに適用されます。
OS::TripleO::Services::NovaPlacement- OpenStack Compute (nova) Placement API を設定します。現在のオーバークラウドでスタンドアロンの Nova API ロールを使用している場合には、そのロールにこのサービスを追加します。そうでない場合には、このサービスを Controller ロールに追加してください。
OS::TripleO::Services::PankoApi- OpenStack Telemetry Event Storage (panko) サービスを設定します。現在のオーバークラウドでスタンドアロンの Telemetry ロールを使用している場合には、このサービスをそのロールに追加します。そうでない場合には、このサービスを Controller ロールに追加してください。
OS::TripleO::Services::Clustercheck-
OS::TripleO::Services::MySQLservice, such as the Controller またはスタンドアロンの Database ロールなど、OS::TripleO::Services::MySQLサービスも使用するロールに必要です。 OS::TripleO::Services::Iscsid-
Controller ロール、Compute ロール、BlockStorage ロールで
iscsidサービスを設定します。 OS::TripleO::Services::NovaMigrationTarget- コンピュート ノード上でマイグレーションターゲットサービスを設定します。
OS::TripleO::Services::Ec2Api- コントローラー ノードで OpenStack Compute (nova) EC2-API サービスを有効化します。デフォルトでは無効になっています。
OS::TripleO::Services::CephMgr-
コントローラー ノードで Ceph Manager サービスを有効にします。
ceph-ansible設定の一部として有効化されます。 OS::TripleO::Services::CephMds- コントローラー ノードで Ceph Metadata Service (MDS) を有効化します。デフォルトでは無効になっています。
OS::TripleO::Services::CephRbdMirror- RADOS Block Device (RBD) ミラーリングサービスを有効化します。デフォルトでは無効になっています。
上記に加えて、特定のカスタムロール向けのサービスの最新のリストは、『Advanced Overcloud Customization』ガイドの「Service Architecture: Standalone Roles」の項を参照してください。
新規コンポーザブルサービスに加えて、OpenStack Platform 13 で非推奨になったサービスについても注意してください。
5.4. 非推奨のコンポーザブルサービス
カスタムの roles_data ファイルを使用する場合には、該当するロールから以下のサービスを削除してください。
OS::TripleO::Services::Core- このサービスは、他の Pacemaker サービスのコアの依存関係として機能していましたが、高可用性のコンポーザブルサービスに対応するために削除されました。
OS::TripleO::Services::VipHosts- このサービスは、ノードのホスト名と IP アドレスで /etc/hosts ファイルを設定していましたが、director の Heat テンプレートに直接統合されました。
OS::TripleO::Services::FluentdClient-
このサービスは、
OS::TripleO::Services::Fluentdサービスに置き換えられました。 OS::TripleO::Services::ManilaBackendGeneric- Manila の汎用バックエンドはサポートされなくなりました。
カスタムの roles_data ファイルを使用する場合には、各ロールから以下のサービスを削除してください。
上記に加えて、特定のカスタムロール向けのサービスの最新のリストは、『Advanced Overcloud Customization』ガイドの「Service Architecture: Standalone Roles」の項を参照してください。
5.5. 非推奨パラメーター
以下のパラメーターは非推奨となり、ロール固有のパラメーターに置き換えられた点に注意してください。
| 旧パラメーター | 新規パラメーター |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
カスタムの環境ファイルでこれらのパラメーターを更新します。
OpenStack Platform 環境で非推奨となったこれらのパラメーターがまだ必要な場合には、デフォルトの roles_data ファイルで使用することができます。ただし、カスタムの roles_data ファイルを使用していて、オーバークラウドにそれらの非推奨パラメーターが引き続き必要な場合には、roles_data ファイルを編集して各ロールに以下の設定を追加することによって、パラメーターへのアクセスを可能にすることができます。
Controller ロール
- name: Controller uses_deprecated_params: True deprecated_param_extraconfig: 'controllerExtraConfig' deprecated_param_flavor: 'OvercloudControlFlavor' deprecated_param_image: 'controllerImage' ...
Compute ロール
- name: Compute uses_deprecated_params: True deprecated_param_image: 'NovaImage' deprecated_param_extraconfig: 'NovaComputeExtraConfig' deprecated_param_metadata: 'NovaComputeServerMetadata' deprecated_param_scheduler_hints: 'NovaComputeSchedulerHints' deprecated_param_ips: 'NovaComputeIPs' deprecated_server_resource_name: 'NovaCompute' disable_upgrade_deployment: True ...
Object Storage ロール
- name: ObjectStorage uses_deprecated_params: True deprecated_param_metadata: 'SwiftStorageServerMetadata' deprecated_param_ips: 'SwiftStorageIPs' deprecated_param_image: 'SwiftStorageImage' deprecated_param_flavor: 'OvercloudSwiftStorageFlavor' disable_upgrade_deployment: True ...
5.6. 非推奨の CLI オプション
環境ファイルの parameter_defaults セクションに追加する Heat テンプレートのパラメーターの使用が優先されるため、一部のコマンドラインオプションは古いか非推奨となっています。以下の表では、非推奨となったパラメーターと、それに相当する Heat テンプレートのオプションを対照しています。
表5.1 非推奨の CLI オプションと Heat テンプレートのパラメーターの対照表
| オプション | 説明 | Heat テンプレートのパラメーター |
|---|---|---|
|
|
スケールアウトするコントローラーノード数 |
|
|
|
スケールアウトするコンピュートノード数 |
|
|
|
スケールアウトする Ceph Storage ノードの数 |
|
|
|
スケールアウトする Cinder ノード数 |
|
|
|
スケールアウトする Swift ノード数 |
|
|
|
コントローラーノードに使用するフレーバー |
|
|
|
コンピュートノードに使用するフレーバー |
|
|
|
Ceph Storage ノードに使用するフレーバー |
|
|
|
Cinder ノードに使用するフレーバー |
|
|
|
Swift Storage ノードに使用するフレーバー |
|
|
|
フラットなネットワークが neutron プラグインで設定されるように定義します。外部ネットワークを作成ができるようにデフォルトは「datacentre」に設定されています。 |
|
|
|
各ハイパーバイザーで作成する Open vSwitch ブリッジ。デフォルト値は「br-ex」で、通常この値は変更する必要はないはずです。 |
|
|
|
使用する論理ブリッジから物理ブリッジへのマッピング。ホスト (br-ex) の外部ブリッジを物理名 (datacentre) にマッピングするようにデフォルト設定されています。これは、デフォルトの Floating ネットワークに使用されます。 |
|
|
|
ネットワークノード向けにインターフェースを br-ex にブリッジするインターフェースを定義します。 |
|
|
|
Neutron のテナントネットワーク種別 |
|
|
|
neutron テナントネットワークのトンネリング種別。複数の値を指定するには、コンマ区切りの文字列を使用します。 |
|
|
|
テナントネットワークを割り当てに使用できる GRE トンネリングの ID 範囲 |
|
|
|
テナントネットワークを割り当てに使用できる VXLAN VNI の ID 範囲 |
|
|
|
サポートされる Neutron ML2 および Open vSwitch VLAN マッピングの範囲。デフォルトでは、物理ネットワーク「datacentre」上の VLAN を許可するように設定されています。 |
|
|
|
neutron テナントネットワークのメカニズムドライバー。デフォルトでは、「openvswitch」に設定されており、複数の値を指定するにはコンマ区切りの文字列を使用します。 |
|
|
|
VLAN で区切られたネットワークまたは neutron でのフラットネットワークを使用するためにトンネリングを無効化します。 |
パラメーターのマッピングなし |
|
|
オーバークラウドの作成プロセスでは、デプロイメントの前に一連のチェックが行われます。このオプションは、デプロイメント前のチェックで何らかの致命的なエラーが発生した場合に終了します。どのようなエラーが発生してもデプロイメントが失敗するので、このオプションを使用することを推奨します。 |
パラメーターのマッピングなし |
|
|
時刻の同期に使用する NTP サーバーを設定します。 |
|
これらのパラメーターは Red Hat OpenStack Platform から削除されました。CLI オプションは Heat パラメーターに変換して、環境ファイルに追加することを推奨します。
本ガイドの後半には、 これらの新しいパラメーターを含む deprecated_cli_options.yaml 環境ファイルの例を記載しています。
5.7. コンポーザブルネットワーク
Red Hat OpenStack Platform の今回のバージョンでは、コンポーザブルネットワーク向けの新機能が導入されています。カスタムの roles_data ファイルを使用する場合には、ファイルを編集して、コンポーザブルネットワークを各ロールに追加します。コントローラーノードの場合の例を以下に示します。
- name: Controller
networks:
- External
- InternalApi
- Storage
- StorageMgmt
- Tenant
その他の構文例については、デフォルトの /usr/share/openstack-tripleo-heat-templates/roles_data.yaml ファイルを確認してください。また、ロールの例のスニペットについては、/usr/share/openstack-tripleo-heat-templates/roles を確認してください。
カスタムのスタンドアロンロールとコンポーザブルネットワークの対応表を以下に示します。
| ロール | 必要なネットワーク |
|---|---|
|
Ceph Storage Monitor |
|
|
Ceph Storage OSD |
|
|
Ceph Storage RadosGW |
|
|
Cinder API |
|
|
Compute |
|
|
Controller |
|
|
Database |
|
|
Glance |
|
|
Heat |
|
|
Horizon |
|
|
Ironic |
必要なネットワークはなし。API には、プロビジョニング/コントロールプレーンネットワークを使用します。 |
|
Keystone |
|
|
Load Balancer |
|
|
Manila |
|
|
Message Bus |
|
|
Networker |
|
|
Neutron API |
|
|
Nova |
|
|
OpenDaylight |
|
|
Redis |
|
|
Sahara |
|
|
Swift API |
|
|
Swift Storage |
|
|
Telemetry |
|
以前のバージョンでは、*NetName パラメーター (例: InternalApiNetName) によってデフォルトのネットワークの名前が変更されていました。このパラメーターはサポートされなくなりました。カスタムのコンポーザブルネットワークファイルを使用してください。詳しくは、『Advanced Overcloud Customization』ガイドの「Using Composable Networks」を参照してください。
5.8. Ceph Storage ノードのアップグレードの準備
コンテナー化されたサービスにアップグレードされたため、Ceph Storage ノードのインストールと更新の方法が変わりました。Ceph Storage の設定では、ceph-ansible パッケージ内の Playbook のセットを使用するようになりました。このパッケージはアンダークラウドにインストールします。
前提条件
- オーバークラウドに、director で管理されている Ceph Storage クラスターがあること
手順
ceph-ansibleパッケージをアンダークラウドにインストールします。[stack@director ~]$ sudo yum install -y ceph-ansible
ストレージの環境ファイルで、最新のリソースと設定を使用するようにします。これは、以下のように変更する必要があります。
resource_registryは、puppet/servicesサブディレクトリーの代わりに、コア Heat テンプレートコレクションのdocker/servicesサブディレクトリーからコンテナー化されたサービスを使用します。以下に例を示します。resource_registry: OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-mon.yaml OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-osd.yaml OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/puppet/services/ceph-client.yaml
上記の行を、以下のように置き換えます。
resource_registry: OS::TripleO::Services::CephMon: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-mon.yaml OS::TripleO::Services::CephOSD: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-osd.yaml OS::TripleO::Services::CephClient: /usr/share/openstack-tripleo-heat-templates/docker/services/ceph-ansible/ceph-client.yaml
重要この設定は、
/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yamlの環境ファイルに記載されています。このファイルは、-eでデプロイメントのコマンドに追加することができます。新しい
CephAnsibleDisksConfigパラメーターを使用して、ディスクのマッピングの方法を定義します。以前のバージョンの Red Hat OpenStack Platform では、ceph::profile::params::osdshieradata を使用して OSD レイアウトを定義していました。この hieradata をCephAnsibleDisksConfigパラメーターの構成に変換します。たとえば、hieradata に以下の内容が記載されているとします。parameter_defaults: ExtraConfig: ceph::profile::params::osd_journal_size: 512 ceph::profile::params::osds: '/dev/sdb': {} '/dev/sdc': {} '/dev/sdd': {}この場合には、
CephAnsibleDisksConfigは以下のようになります。parameter_defaults: ExtraConfig: {} CephAnsibleDisksConfig: devices: - /dev/sdb - /dev/sdc - /dev/sdd journal_size: 512 osd_scenario: collocatedceph-ansibleに使用する OSD ディスクレイアウトオプションの完全な一覧は、/usr/share/ceph-ansible/group_vars/osds.yml.sampleのサンプルファイルを参照してください。
-
今後は、デプロイメントのコマンドで
-eオプションを使用して新しい Ceph の設定環境ファイルを指定するようにしてください。
5.9. ストレージバックエンドの準備
一部のストレージバックエンドは、設定フックではなく、独自のコンポーザブルサービスを使用するように変更されました。カスタムストレージバックエンドを使用する場合には、environments ディレクトリーで関連する環境ファイルに新規パラメーターとリソースが含まれているかどうかを確認してください。バックエンド用のカスタム環境ファイルを更新します。以下に例を示します。
-
NetApp Block Storage (cinder) バックエンドの場合は、デプロイメント内の新しい
environments/cinder-netapp-config.yamlを使用してください。 -
Dell EMC Block Storage (cinder) バックエンドの場合は、デプロイメント内の新しい
environments/cinder-dellsc-config.yamlを使用してください。 -
Dell EqualLogic Block Storage (cinder) バックエンドの場合は、デプロイメント内の新しい
environments/cinder-dellps-config.yamlを使用してください。
NetApp Block Storage (cinder) バックエンドは、それぞれのバージョンに以下のリソースを使用していました。
-
OpenStack Platform 10 以前:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml -
OpenStack Platform 11 以降:
OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml
今回の変更の結果、このバックエンドには新しい OS::TripleO::Services::CinderBackendNetApp リソースと、関連付けられたサービステンプレートを使用するようになりました。
5.10. SSL/TLS を介してアンダークラウドのパブリック API にアクセスするための準備
オーバークラウドは、アップグレード中にアンダークラウドの OpenStack Object Storage (swift) のパブリック API にアクセスする必要があります。アンダークラウドで自己署名証明書を使用している場合には、アンダークラウドの認証局を各オーバークラウドノードに追加する必要があります。
前提条件
- アンダークラウドで、パブリック API に SSL/TLS を使用していること
手順
director の動的な Ansible スクリプトが OpenStack Platform 12 バージョンに更新され、オーバークラウドプラン内の
RoleNetHostnameMapHeat パラメーターを使用してインベントリーを定義するようになりました。ただし、オーバークラウドは現在 OpenStack Platform 11 のテンプレートバージョンを使用しており、これにはRoleNetHostnameMapパラメーターがないため、一時的な静的インベントリーファイルを作成する必要があります。このファイルは、以下のコマンドを実行すると生成することができます。$ openstack server list -c Networks -f value | cut -d"=" -f2 > overcloud_hosts
以下の内容を記述した Ansible Playbook (
undercloud-ca.yml) を作成します。--- - name: Add undercloud CA to overcloud nodes hosts: all user: heat-admin become: true vars: ca_certificate: /etc/pki/ca-trust/source/anchors/cm-local-ca.pem tasks: - name: Copy undercloud CA copy: src: "{{ ca_certificate }}" dest: /etc/pki/ca-trust/source/anchors/ - name: Update trust command: "update-ca-trust extract" - name: Get the swift endpoint shell: | sudo hiera swift::keystone::auth::public_url | awk -F/ '{print $3}' register: swift_endpoint delegate_to: 127.0.0.1 become: yes become_user: stack - name: Verify URL uri: url: https://{{ swift_endpoint.stdout }}/healthcheck return_content: yes register: verify - name: Report output debug: msg: "{{ ansible_hostname }} can access the undercloud's Public API" when: verify.content == "OK"この Playbook には複数のタスクが含まれており、各ノードで以下の操作を実行します。
-
アンダークラウドの認証局ファイルをオーバークラウドノードにコピーします。アンダークラウドによって生成された場合には、デフォルトの場所は
/etc/pki/ca-trust/source/anchors/cm-local-ca.pemです。 - オーバークラウドノードで、CA トラストデータベースを更新するコマンドを実行します。
- オーバークラウドノードから、アンダークラウドの Object Storage Public API をチェックして、成功したかどうかを報告します。
-
アンダークラウドの認証局ファイルをオーバークラウドノードにコピーします。アンダークラウドによって生成された場合には、デフォルトの場所は
以下のコマンドで Playbook を実行します。
$ ansible-playbook -i overcloud_hosts undercloud-ca.yml
ここでは、一時インベントリーを使用して、Ansible にオーバークラウドノードを指定します。
カスタムの認証局ファイルを使用している場合は、
ca_certificate変数で場所を変更することができます。以下に例を示します。$ ansible-playbook -i overcloud_hosts undercloud-ca.yml -e ca_certificate=/home/stack/ssl/ca.crt.pem
その結果、Ansible の出力には、ノードのデバッグメッセージが表示されます。以下に例を示します。
ok: [192.168.24.100] => { "msg": "overcloud-controller-0 can access the undercloud's Public API" }
関連情報
- オーバークラウドでの Ansible 自動化の実行に関する詳しい情報は、『director のインストールと使用方法』ガイドの「動的インベントリースクリプトの実行」 を参照してください。
5.11. Fast Forward Upgrade の登録の設定
Fast Forward Upgrade プロセスでは、リポジトリーの切り替えに新しい方法を採用しています。このため、デプロイメントのコマンドから以前の rhel-registration 環境ファイルを削除する必要があります。以下に例を示します。
- environment-rhel-registration.yaml
- rhel-registration-resource-registry.yaml
Fast Forward Upgrade のプロセスでは、アップグレードの各段階でスクリプトを使用してリポジトリーを変更します。このスクリプトは、OS::TripleO::Services::TripleoPackages コンポーザブルサービス (puppet/services/tripleo-packages.yaml) の一部として含まれ、FastForwardCustomRepoScriptContent パラメーターを使用します。スクリプトの内容は以下のとおりです。
#!/bin/bash
set -e
case $1 in
ocata)
subscription-manager repos --disable=rhel-7-server-openstack-10-rpms
subscription-manager repos --enable=rhel-7-server-openstack-11-rpms
;;
pike)
subscription-manager repos --disable=rhel-7-server-openstack-11-rpms
subscription-manager repos --enable=rhel-7-server-openstack-12-rpms
;;
queens)
subscription-manager repos --disable=rhel-7-server-openstack-12-rpms
subscription-manager repos --enable=rhel-7-server-openstack-13-rpms
;;
*)
echo "unknown release $1" >&2
exit 1
esacdirector は、スクリプトに対して、OpenStack Platform バージョンのアップストリームのコード名を渡します。
| コード名 | バージョン |
|---|---|
|
|
OpenStack Platform 11 |
|
|
OpenStack Platform 12 |
|
|
OpenStack Platform 13 |
状況によっては、カスタムのスクリプトを使用する必要がある場合があります。以下に例を示します。
- カスタムのリポジトリー名で Red Hat Satellite を使用する場合
- カスタムの名前で接続されていないリポジトリーを使用する場合
- 各段階に追加のコマンドを実行する場合
このような状況では、FastForwardCustomRepoScriptContent パラメーターを設定してカスタムスクリプトを追加します。
parameter_defaults:
FastForwardCustomRepoScriptContent: |
[INSERT UPGRADE SCRIPT HERE]たとえば、以下のスクリプトは Satellite 6 アクティベーションキーのセットを使用して、リポジトリーを変更します。
parameter_defaults:
FastForwardCustomRepoScriptContent: |
set -e
URL="satellite.example.com"
case $1 in
ocata)
subscription-manager register --baseurl=https://$URL --force --activationkey=rhosp11 --org=Default_Organization
;;
pike)
subscription-manager register --baseurl=https://$URL --force --activationkey=rhosp12 --org=Default_Organization
;;
queens)
subscription-manager register --baseurl=https://$URL --force --activationkey=rhosp13 --org=Default_Organization
;;
*)
echo "unknown release $1" >&2
exit 1
esac
本ガイドの後半には、カスタムスクリプトを含む custom_repositories_script.yaml 環境ファイルを記載しています。
5.12. カスタムの Puppet パラメーターの確認
Puppet パラメーターのカスタマイズに ExtraConfig インターフェースを使用する場合には、アップグレード中に、Puppet が重複した宣言のエラーを報告する可能性があります。これは、Puppet モジュール自体によって提供されるインターフェースの変更が原因です。
この手順では、環境ファイル内のカスタムの ExtraConfig hieradata パラメーターを確認する方法を説明します。
手順
環境ファイルを選択して、
ExtraConfigパラメーターが設定されているかどうかを確認します。$ grep ExtraConfig ~/templates/custom-config.yaml
-
コマンドの出力で、選択したファイルのいずれかのロールに
ExtraConfigパラメーター (例:ControllerExtraConfig) が表示された場合には、そのファイルの全パラメーター構造を確認します。 SECTION/parameter構文でvalueが続くいずれかの puppet Hierdata がパラメーターに含まれている場合には、実際の Puppet クラスに置き換えられている可能性があります。以下に例を示します。parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'director の Puppet モジュールを確認して、パラメーターが Puppet クラス内に存在しているかどうかを確認します。以下に例を示します。
$ grep dnsmasq_local_resolv
その場合には、新規インターフェースに変更します。
構文の変更の実例を以下に示します。
例 1:
parameter_defaults: ExtraConfig: neutron::config::dhcp_agent_config: 'DEFAULT/dnsmasq_local_resolv': value: 'true'変更後
parameter_defaults: ExtraConfig: neutron::agents::dhcp::dnsmasq_local_resolv: true例 1:
parameter_defaults: ExtraConfig: ceilometer::config::ceilometer_config: 'oslo_messaging_rabbit/rabbit_qos_prefetch_count': value: '32'変更後
parameter_defaults: ExtraConfig: oslo::messaging::rabbit::rabbit_qos_prefetch_count: '32'
5.13. ネットワークインターフェースのテンプレートを新しい構造に変換する方法
以前は、ネットワークインターフェースの構造は OS::Heat::StructuredConfig リソースを使用してインターフェースを設定していました。
resources:
OsNetConfigImpl:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
os_net_config:
network_config:
[NETWORK INTERFACE CONFIGURATION HERE]
テンプレートでは、設定に OS::Heat::SoftwareConfig リソースを使用するようになりました。
resources:
OsNetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
str_replace:
template:
get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh
params:
$network_config:
network_config:
[NETWORK INTERFACE CONFIGURATION HERE]
この設定は、$network_config 変数に保管されているインターフェースの設定を取得して、それを run-os-net-config.sh スクリプトの一部として挿入します。
ネットワークインターフェースのテンプレートがこの新しい構造を使用するように更新して、ネットワークインターフェースのテンプレートが引き続き構文を順守していることを必ず確認する必要があります。 この操作を実行しないと、Fast Forward Upgrade のプロセスでエラーが発生する可能性があります。
director の Heat テンプレートコレクションには、お使いのテンプレートをこの新しい形式に変換するためのスクリプトが含まれています。このスクリプトは、/usr/share/openstack-tripleo-heat-templates/tools/yaml-nic-config-2-script.py にあります。使用方法の例を以下に示します。
$ /usr/share/openstack-tripleo-heat-templates/tools/yaml-nic-config-2-script.py \
--script-dir /usr/share/openstack-tripleo-heat-templates/network/scripts \
[NIC TEMPLATE] [NIC TEMPLATE] ...このスクリプトを使用する場合には、テンプレートにコメント化された行が含まれていないことを確認します。コメント化された行があると、古いテンプレート構造の解析時にエラーが発生する可能性があります。
詳しい情報は、「Isolating Networks」を参照してください。
5.14. 次のステップ
オーバークラウドの準備段階が完了しました。次に「6章オーバークラウドのアップグレード」に記載の手順でオーバークラウドを 10 から 13 にアップグレードします。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.