[ English | русский | Deutsch | 한국어 (대한민국) | English (United Kingdom) | Indonesia ]
Wichtige Upgrades¶
Dieses Handbuch enthält Informationen zum Aktualisierungsvorgang von Stein zu Train für OpenStack-Ansible.
Bemerkung
Sie können nur zwischen sequenziellen Releases upgraden.
Einführung¶
For upgrades between major versions, the OpenStack-Ansible repository provides
playbooks and scripts to upgrade an environment. The run-upgrade.sh
script runs each upgrade playbook in the correct order, or playbooks can be run
individually if necessary. Alternatively, a deployer can upgrade manually.
Weitere Informationen zum Hauptaktualisierungsprozess finden Sie unter Aktualisierung mit einem Script und Manuelle Aktualisierung.
Warnung
The upgrade is always under active development. Testen Sie dies zunächst in einer Entwicklungsumgebung.
Aktualisierung mit einem Script¶
Der Train Release-Reihe von OpenStack-Ansible enthält den Code für die Migration von Stein zu Train.
Ausführen des Upgrade-Skripts¶
So aktualisieren Sie von Stein zu Train. Führen Sie mit dem Upgrade-Skript die folgenden Schritte im Verzeichnis openstack-ansible
durch:
Wechseln Sie in das Stammverzeichnis des Repository-Klons:
# cd /opt/openstack-ansible
Führen Sie die folgenden Befehle aus:
# git checkout 20.2.7 # ./scripts/run-upgrade.sh
Für mehr Informationen über die Schritte, die das Script ausführt, schauen Sie Manuelle Aktualisierung.
Manuelle Aktualisierung¶
Manuelle Aktualisierungen sind nützlich, wenn die Änderungen des Aktualisierungsprozesses im Fokus stehen (z.B. in sehr grossen Bereitstellungen mit strikten SLA Anforderungen) oder andere durchgeführte Aktualisierungsautomatisierungen hinter OpenStack-Ansible.
Die hier aufgeführten Schritte stimmen mit denen überein, die das Skript `` run-upgrade.sh`` ausführt. Sie können diese Schritte mehrmals sicher ausführen.
Preflight Prüfung¶
Before starting with the upgrade, perform preflight health checks to ensure your environment is stable. If any of those checks fail, ensure that the issue is resolved before continuing.
Überprüfen Sie die Train Freisetzung¶
Stellen Sie sicher, dass sich Ihr OpenStack-Ansible-Code auf latest Train befindet markierte Version.
# git checkout 20.2.7
Bereiten Sie die Shell-Variablen vor¶
Definieren Sie diese Variablen, um beim Ausführen der verbleibenden Upgrade-Aufgaben die Eingabe zu reduzieren. Da es sich bei diesen Umgebungsvariablen um Verknüpfungen handelt, ist dieser Schritt optional. Wenn Sie möchten, können Sie während des Upgrades direkt auf die Dateien verweisen.
# cd /opt/openstack-ansible
# export MAIN_PATH="$(pwd)"
# export SCRIPTS_PATH="${MAIN_PATH}/scripts"
Backup der existierenden OpenStack-Ansible Konfiguration¶
Machen Sie ein Backup der Konfiguration der Umgebung:
# source_series_backup_file="/openstack/backup-openstack-ansible-stein.tar.gz" # tar zcf ${source_series_backup_file} /etc/openstack_deploy /etc/ansible/ /usr/local/bin/openstack-ansible.rc
Bootstrappen der neuen Ansible und OSA Rollen¶
To ensure that there is no currently set ANSIBLE_INVENTORY to override the default inventory location, we unset the environment variable.
# unset ANSIBLE_INVENTORY
Ansible erneut boostrappen, um sicherzustellen, dass alle OpenStack-Ansible-Rollenabhängigkeiten vorhanden sind, bevor Sie Playbooks von Train ausführen.
# ${SCRIPTS_PATH}/bootstrap-ansible.sh
Wechseln Sie in das Verzeichnis der Playbooks¶
Change to the playbooks directory to simplify the CLI commands from here on in the procedure, given that most playbooks executed are in this directory.
# cd playbooks
Implement changes to OSA configuration¶
If there have been any OSA variable name changes or environment/inventory changes, there is a playbook to handle those changes to ensure service continuity in the environment when the new playbooks run. The playbook is tagged to ensure that any part of it can be executed on its own or skipped. Please review the contents of the playbook for more information.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/deploy-config-changes.yml" -e 'placement_migrate_flag=true'
Aktualisieren Sie Hosts¶
Aktualisieren Sie die Host-Computer, bevor Sie die Infrastruktur und OpenStack installieren.
# openstack-ansible setup-hosts.yml --limit '!galera_all:!rabbitmq_all'
This command is the same setting up hosts on a new installation. The
galera_all
and rabbitmq_all
host groups are excluded to prevent
reconfiguration and restarting of any of those containers as they need to
be updated, but not restarted.
Once that is complete, upgrade the final host groups with the flag to prevent container restarts.
# openstack-ansible setup-hosts.yml -e 'lxc_container_allow_restarts=false' --limit 'galera_all:rabbitmq_all'
Aktualisieren der Infrastruktur¶
We can now go ahead with the upgrade of all the infrastructure components. To ensure that rabbitmq and mariadb are upgraded, and to handle the transition from the nova placement service to the extracted placement service, we pass the appropriate flags.
# openstack-ansible setup-infrastructure.yml -e 'galera_upgrade=true' -e 'rabbitmq_upgrade=true' -e 'placement_migrate_flag=true'
With this complete, we can now restart the mariadb containers one at a time, ensuring that each is started, responding, and synchronized with the other nodes in the cluster before moving on to the next steps. This step allows the LXC container configuration that you applied earlier to take effect, ensuring that the containers are restarted in a controlled fashion.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/galera-cluster-rolling-restart.yml"
During upgrade from S->T nova may fail with DB migrations because of the insufficient size of the table type.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/galera-row-format-switch.yml"
Aktualisieren Sie OpenStack¶
We can now go ahead with the upgrade of all the OpenStack components, passing the flag that enabled the transition from the nova placement service to the extracted placement service.
# openstack-ansible setup-openstack.yml -e 'placement_migrate_flag=true'
Remove legacy nova placement service backends¶
Now that the new extracted placement service is operational, we can remove the legacy implementation from the load balancer.
# openstack-ansible haproxy-install.yml