[ English | русский | Deutsch | 한국어 (대한민국) | English (United Kingdom) | Indonesia ]
Pemutakhiran besar¶
Panduan ini memberikan informasi tentang proses pemutakhiran dari Stein ke Train untuk OpenStack-Ansible.
Catatan
Anda hanya dapat memutakhirkan di antara rilis berurutan.
Pengantar¶
Untuk upgrade di antara versi utama, repositori OpenStack-Ansible menyediakan playbooks dan skrip untuk upgrade suatu lingkungan. Skrip run-upgrade.sh` menjalankan setiap playbook upgrade dalam urutan yang benar, atau playbook dapat dijalankan secara individual jika perlu. Atau, seorang deployer dapat upgrade secara manual.
Untuk informasi lebih lanjut tentang proses pemutakhiran utama, lihat Memutakhirkan dengan menggunakan skrip dan Memutakhirkan secara manual.
Peringatan
Uji The upgrade is always under active development. ini pada lingkungan pengembangan terlebih dahulu.
Memutakhirkan dengan menggunakan skrip¶
The Train seri rilis OpenStack-Ansible berisi kode untuk bermigrasi dari Stein ke Train.
Menjalankan skrip pemutakhiran¶
Untuk memutakhirkan dari Stein ke Train dengan menggunakan skrip pemutakhiran, lakukan langkah-langkah berikut di direktori openstack-ansible
:
Ubah direktori ke direktori root clone repositori:
# cd /opt/openstack-ansible
Jalankan perintah berikut:
# git checkout 20.2.7 # ./scripts/run-upgrade.sh
Untuk informasi lebih lanjut tentang langkah-langkah yang dilakukan oleh skrip, lihat Memutakhirkan secara manual.
Memutakhirkan secara manual¶
Upgrade secara manual berguna untuk membatasi perubahan dalam proses upgrade (misalnya, dalam deployments yang sangat besar dengan persyaratan SLA yang ketat), atau melakukan otomatisasi upgrade lain di luar yang disediakan oleh OpenStack-Ansible.
Langkah-langkah yang dijelaskan di sini cocok dengan yang dilakukan oleh skrip run-upgrade.sh
. Anda dapat dengan aman menjalankan langkah-langkah ini beberapa kali.
Pemeriksaan preflight¶
Sebelum memulai dengan upgrade, lakukan pemeriksaan kesehatan preflight untuk memastikan lingkungan Anda stabil. Jika salah satu dari pemeriksaan itu gagal, pastikan bahwa masalah tersebut diselesaikan sebelum melanjutkan.
Lihat Train melepaskan¶
Pastikan kode OpenStack-Ansible Anda ada di Train terbaru rilis yang ditandai.
# git checkout 20.2.7
Mempersiapkan variabel shell¶
Tentukan variabel-variabel ini untuk mengurangi pengetikan saat menjalankan tugas pemutakhiran yang tersisa. Karena variabel lingkungan ini adalah pintasan (shortcut), langkah ini opsional. Jika Anda suka, Anda dapat mereferensikan file secara langsung selama pemutakhiran.
# cd /opt/openstack-ansible
# export MAIN_PATH="$(pwd)"
# export SCRIPTS_PATH="${MAIN_PATH}/scripts"
Cadangkan konfigurasi OpenStack-Ansible yang ada¶
Buat cadangan dari konfigurasi lingkungan:
# 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
Bootstrap peran Ansible dan OSA yang baru¶
Untuk memastikan bahwa saat ini tidak ada yang menetapkan ANSIBLE_INVENTORY untuk mengganti lokasi inventaris default, kami membatalkan variabel lingkungan.
# unset ANSIBLE_INVENTORY
Bootstrap Ansible dilakukan lagi untuk memastikan bahwa semua dependensi peran OpenStack-Ansible sudah ada sebelum Anda menjalankan playbook dari pelepasan|current_release_formal_name|.
# ${SCRIPTS_PATH}/bootstrap-ansible.sh
Ubah ke direktori playbook¶
Ubah ke direktori playbook untuk menyederhanakan perintah CLI dari sini dalam prosedur, mengingat sebagian besar playbook yang dieksekusi ada di direktori ini.
# cd playbooks
Terapkan perubahan pada konfigurasi OSA¶
Jika ada perubahan nama variabel OSA atau perubahan lingkungan/inventaris, ada buku pedoman untuk menangani perubahan itu untuk memastikan kesinambungan layanan di lingkungan saat buku pedoman baru dijalankan. Playbook ini ditandai untuk memastikan bahwa setiap bagian dari itu dapat dieksekusi sendiri atau dilewati. Harap tinjau isi buku pedoman untuk informasi lebih lanjut.
# openstack-ansible "${SCRIPTS_PATH}/upgrade-utilities/deploy-config-changes.yml" -e 'placement_migrate_flag=true'
Upgrade host (tingkatkan host)¶
Sebelum memasang infrastruktur dan OpenStack, perbarui mesin host.
# openstack-ansible setup-hosts.yml --limit '!galera_all:!rabbitmq_all'
Perintah ini sama mengatur host pada instalasi baru. Grup host galera_all
dan rabbitmq_all
dikecualikan untuk mencegah konfigurasi ulang dan memulai kembali container mana pun karena perlu diperbarui, tetapi tidak dimulai kembali.
Setelah selesai, upgrade grup host terakhir dengan flag untuk mencegah restart kontainer.
# openstack-ansible setup-hosts.yml -e 'lxc_container_allow_restarts=false' --limit 'galera_all:rabbitmq_all'
Upgrade infrastruktur¶
Kita sekarang dapat melanjutkan dengan peningkatan semua komponen infrastruktur. Untuk memastikan bahwa rabbitmq dan mariadb ditingkatkan, dan untuk menangani transisi dari layanan penempatan nova ke layanan penempatan yang diekstraksi, kami memberikan tanda yang sesuai.
# openstack-ansible setup-infrastructure.yml -e 'galera_upgrade=true' -e 'rabbitmq_upgrade=true' -e 'placement_migrate_flag=true'
Dengan lengkap ini, kita sekarang dapat me-restart kontainer mariadb satu per satu, memastikan bahwa masing-masing dimulai, merespons, dan disinkronkan dengan node lain di cluster sebelum melanjutkan ke langkah berikutnya. Langkah ini memungkinkan konfigurasi kontainer LXC yang Anda terapkan sebelumnya berlaku, memastikan bahwa kontainer diaktifkan kembali secara terkendali.
# 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"
Memutakhirkan OpenStack¶
Kita sekarang dapat melanjutkan dengan upgrade semua komponen OpenStack, melewati flag yang mengaktifkan transisi dari layanan penempatan nova ke layanan penempatan yang diekstraksi.
# openstack-ansible setup-openstack.yml -e 'placement_migrate_flag=true'
Hapus backends layanan penempatan nova legacy¶
Sekarang layanan penempatan yang diekstraksi baru telah beroperasi, kami dapat menghapus penerapan lawas (legacy) dari penyeimbang beban.
# openstack-ansible haproxy-install.yml