付録A アンダークラウドの復元
以下の復元プロセスは、アンダークラウドノードでエラーが発生して、回復不可能な状態であることを前提としています。この手順では、新規インストール環境でデータベースおよびクリティカルなファイルシステムの復元を行う必要があります。以下が前提条件です。
- Red Hat Enterprise Linux 7 の最新版を再インストール済みであること
- ハードウェアレイアウトが同じであること
- マシンのホスト名とアンダークラウドの設定が同じであること
-
バックアップアーカイブが
rootディレクトリーにコピー済みであること
手順
-
アンダークラウドに
rootユーザーとしてログインします。 stackユーザーを作成します。[root@director ~]# useradd stack
そのユーザーのパスワードを設定します。
[root@director ~]# passwd stack
sudoを使用する場合にパスワードを要求されないようにします。[root@director ~]# echo "stack ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/stack [root@director ~]# chmod 0440 /etc/sudoers.d/stack
コンテンツ配信ネットワークにシステムを登録します。プロンプトが表示されたら、カスタマーポータルのユーザー名とパスワードを入力します。
[root@director ~]# sudo subscription-manager register
Red Hat OpenStack Platform のエンタイトルメントをアタッチします。
[root@director ~]# sudo subscription-manager attach --pool=Valid-Pool-Number-123456
デフォルトのリポジトリーをすべて無効にしてから、必要な Red Hat Enterprise Linux リポジトリーを有効にします。
[root@director ~]# sudo subscription-manager repos --disable=* [root@director ~]# sudo subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-extras-rpms --enable=rhel-7-server-rh-common-rpms --enable=rhel-ha-for-rhel-7-server-rpms --enable=rhel-7-server-openstack-13-rpms
システムで更新を実行して、ベースシステムパッケージを最新の状態にします。
[root@director ~]# sudo yum update -y [root@director ~]# sudo reboot
アンダークラウドの時刻が同期されていることを確認します。以下に例を示します。
[root@director ~]# sudo yum install -y ntp [root@director ~]# sudo systemctl start ntpd [root@director ~]# sudo systemctl enable ntpd [root@director ~]# sudo ntpdate pool.ntp.org [root@director ~]# sudo systemctl restart ntpd
バックアップ用に一時ディレクトリーを作成します。
[root@director ~]# mkdir /var/tmp/undercloud_backup
ファイルシステムのバックアップアーカイブを一時ディレクトリーに抽出します。
[root@director ~]# sudo tar -xvf /root/undercloud-backup-[timestamp].tar -C /var/tmp/undercloud_backup --xattrs || true
rsyncをインストールします。[root@director ~]# sudo yum -y install rsync
以下のディレクトリーをバックアップのコンテンツと同期します。
[root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/home/stack/ /home/stack [root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/etc/haproxy/ /etc/haproxy/ [root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/etc/pki/instack-certs/ /etc/pki/instack-certs/ [root@director ~]# sudo mkdir -p /etc/puppet/hieradata/ [root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/etc/puppet/hieradata/ /etc/puppet/hieradata/ [root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/srv/node/ /srv/node/ [root@director ~]# sudo rsync -a -X /var/tmp/undercloud_backup/var/lib/glance/ /var/lib/glance/
openstack-keystoneパッケージをインストールして、その設定データを同期します。[root@director ~]# sudo yum -y install openstack-keystone [root@director ~]# sudo rsync -a /var/tmp/undercloud_backup/etc/keystone/ /etc/keystone/
policycoreutils-pythonパッケージをインストールします。[root@director ~]# sudo yum -y install policycoreutils-python
アンダークラウドで SSL を使用している場合には、CA 証明書をリフレッシュします。
[root@director ~]# sudo semanage fcontext -a -t etc_t "/etc/pki/instack-certs(/.*)?" [root@director ~]# sudo restorecon -R /etc/pki/instack-certs [root@director ~]# sudo update-ca-trust extract
データベースサーバーとクライアントツールをインストールします。
[root@director ~]# sudo yum install -y mariadb mariadb-server python-tripleoclient
データベースを起動します。
[root@director ~]# sudo systemctl start mariadb [root@director ~]# sudo systemctl enable mariadb
データベースのバックアップのサイズに対応するように、許可されるパケット数を増やします。
[root@director ~]# mysql -uroot -e"set global max_allowed_packet = 1073741824;"
データベースのバックアップを復元します。
[root@director ~]# mysql -u root < /var/tmp/undercloud_backup/root/undercloud-all-databases.sql
Mariadb を再起動して、バックアップファイルからパーミッションをリフレッシュします。
[root@director ~]# sudo systemctl restart mariadb
古いユーザーパーミッションの一覧を取得します。
[root@director ~]# mysql -e 'select host, user, password from mysql.user;'
リストされた各ホストの古いユーザーパーミッションを削除します。以下に例を示します。
[root@director ~]# HOST="192.0.2.1" [root@director ~]# USERS=$(mysql -Nse "select user from mysql.user WHERE user != \"root\" and host = \"$HOST\";" | uniq | xargs) [root@director ~]# for USER in $USERS ; do mysql -e "drop user \"$USER\"@\"$HOST\"" || true ;done [root@director ~]# mysql -e 'flush privileges'
openstack-glanceパッケージをインストールして、そのファイルパーミッションを復元します。[root@director ~]# sudo yum install -y openstack-glance [root@director ~]# sudo chown -R glance: /var/lib/glance/images
openstack-swiftパッケージをインストールして、そのファイルパーミッションを復元します。[root@director ~]# sudo yum install -y openstack-swift [root@director ~]# sudo chown -R swift: /srv/node
新規作成した
stackユーザーに切り替えます。[root@director ~]# su - stack [stack@director ~]$
アンダークラウドのインストールコマンドを実行します。このコマンドは、
stackユーザーのホームディレクトリーから実行するようにしてください。[stack@director ~]$ openstack undercloud install
- インストールが完了するまで待ちます。アンダークラウドは、オーバークラウドへの接続を自動的に復元します。ノードは、保留中のタスクに対して、OpenStack Orchestration (heat) のポーリングを続けます。

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.