精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenStack Ironic 獨立部署入門詳解

云計算 云原生
想在云環境中像管理虛擬機(VM)一樣管理物理服務器嗎?想在物理節點上實現基礎設施即代碼(IaC)和 CI/CD 流水線嗎?

想在云環境中像管理虛擬機(VM)一樣管理物理服務器嗎?想在物理節點上實現基礎設施即代碼(IaC)和 CI/CD 流水線嗎?下面,讓我們通過一些實用、簡單且可復現的案例,來揭開私有云基礎設施和裸金屬生命周期管理的一些神秘面紗,我們將從一個最小化的 OpenStack Ironic “獨立”部署開始。

  • 使用 OpenStack Kolla 和 Ironic 安裝并管理一個簡單的裸金屬配置系統。
  • 管理物理服務器的通用生命周期:上線、資源收集、操作系統安裝、故障恢復、回收。
  • 應用 IaC 方法進行節點和應用程序的配置。

一旦我們了解了 Ironic 的“獨立”模式,將其與 Keystone、Cinder、Nova 和 Neutron 等其他 OpenStack 服務集成就會變得更加簡單,從而擴展其功能,將數據中心轉變為一個能夠同時管理裸金屬工作負載和虛擬機的真正私有云。

引言

日常與 物理服務器 、手動配置、驅動程序、BIOS 以及維護龐大物理機器打交道的人,都深知裸金屬管理(即管理未預裝操作系統的物理服務器)是多么耗時且繁瑣。

你肯定對 OpenStack 不陌生。它是一個開源的云服務套件,允許你以代碼方式和“as-a-Service”的形式管理虛擬資源(虛擬機、網絡、存儲)。而 Ironic 正是 OpenStack 中將這一理念延伸到物理機管理的組件。

OpenStack Ironic 是一個裸金屬配置和管理服務,它將物理服務器集成到 OpenStack 框架中,視其為云資源。這意味著物理服務器可以通過 API 進行請求、分配、配置和釋放,就像操作虛擬機一樣。

這與虛擬化無關:Ironic 不會在物理硬件上創建虛擬機。Ironic 管理的是物理硬件本身,它直接在機器上安裝操作系統,沒有任何中間的虛擬化層。

管理裸金屬生命周期

傳統上,管理裸金屬服務器的生命周期是一個包含多個階段的過程,通常是手動的且非常耗時:

  1. 采購與物理安裝:接收、上架、布線。
  2. BIOS/UEFI 配置:手動進入、進行特定設置。
  3. RAID 控制器配置:創建陣列、配置磁盤。
  4. 操作系統安裝:從 CD/USB/PXE 啟動,手動或半自動安裝。
  5. 安裝后配置:驅動、軟件、網絡、安全加固。
  6. 維護與更新:打補丁、升級固件。
  7. 回收:擦除磁盤、移除設備。

有了 Ironic,整個過程發生了轉變,我們就實現了“as-a-Service”的管理方式:

  1. 發現與注冊(Onboarding):Ironic 通過 PXE 啟動和代理“發現”機器,并將其注冊到其清單中。注冊后,Ironic 可以直接與其 BMC(管理控制器,如 iLO、iDRAC、IMM)進行交互。
  2. “As-a-Service”式配置:用戶(或自動化服務)可以通過 OpenStack API 請求一臺具有特定特性(CPU、RAM、存儲)的物理服務器。Ironic 會選擇一臺可用的服務器,打開電源,安裝所選的操作系統(GNU/Linux、Windows、VMware ESXi 等),配置網絡,并在短時間內使其可用。
  3. 遠程自動化管理:得益于與 BMC 的集成,Ironic 可以通過程序方式執行諸如開/關機、重啟、重置、引導設備管理、固件更新(通過插件)甚至 BIOS/UEFI 設置等操作,所有這些都無需任何手動干預。
  4. 回收與清理:當不再需要某臺服務器時,Ironic 可以執行安全磁盤擦除并重置 BIOS/UEFI 設置,使服務器恢復到“干凈”狀態,可供重用或最終回收,整個過程完全自動化。
  5. 與其他 OpenStack 服務集成:最后但同樣重要的是,Ironic 可以與用于物理網絡管理的 Neutron、用于操作系統鏡像管理的 Glance、用于提供持久性存儲的 Cinder 以及用于提供統一圖形界面的 Horizon 集成。這使得構建復雜的解決方案成為可能,其中裸金屬是云基礎設施的延伸,不僅可以實現資源的“即服務”消費,還可以實現像 CI/CD 流水線這樣的自動化交互。

1.實驗環境

讓我們考慮一個簡化的環境,這樣我們就可以用最少的精力來搭建它,并主要關注裸金屬配置機制:

圖片圖片

  • LAN 網絡  192.168.0.0/24:也稱為公共網絡,這將是一個統一的客戶端和服務器網絡,通過一個路由器(.254)連接到互聯網,該路由器在 x.x.x.101-199 范圍內通過 DHCP 分配 IP 地址。
  • OOB/IB 網絡 172.19.74.0/24 :這個獨立的網絡由一臺小型服務器(圖中標記為“bms”)管理,用于控制裸金屬節點的配置。這些節點通過 BMC 連接以進行帶外管理(iLO、iDRAC、IMM 等),并通過以太網卡進行帶內管理(部署、巡檢、救援等)。

兩個交換機都是非網管交換機,沒有 VLAN,這樣就可以使用“現成”的硬件,或者用企業級設備、甚至虛擬化環境輕松模擬。

1.1 裸金屬服務

bms 服務器,即我們將要安裝裸金屬配置環境的服務器,并不需要很高的資源。最低規格要求是 4GB 內存、2 個 CPU 核心、2 個網卡和至少 200GB 的磁盤空間(用于托管和構建操作系統鏡像及容器)。但是,建議至少使用 8GB 內存和 4 個 CPU 核心,以便將來可以擴展環境并添加更多服務。

在軟件方面,將使用以下主要組件:

  • OpenStack 2025.1 (Epoxy):在撰寫本文時,這是最新的 OpenStack 版本,Kolla 和 Kolla Ansible(本文用于部署 OpenStack 的系統)已經為其發布了即用型容器。
  • Debian GNU/Linux 12 (Bookworm):盡管 OpenStack 在很大程度上與各種 GNU/Linux 發行版無關(尤其是在通過容器安裝時),但為了避免偏向商業發行版,我們將使用 Debian。
  • Podman:它為 Docker 提供了一個輕量級且集成的替代方案,同時保持了與現有生態系統的兼容性,并與像 Kubernetes 這樣的“Pod”基礎設施保持一致。

2.創建實驗環境

  • 安裝 bms 服務器;
  • 安裝 Podman 容器管理系統;
  • 創建 kolla 管理用戶;
  • 創建 Python 虛擬環境;
  • 安裝 OpenStack Kolla Ansible;
  • 為裸金屬配置進行最小化配置;
  1. 部署 OpenStack。

2.1 服務器安裝(bms)

對于操作系統安裝,請選擇您偏好的 GNU/Linux 版本并相應地調整配置:

root@bms:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto enp1s0
iface enp1s0 inet static
    address 192.168.0.13/24
    gateway 192.168.0.254
auto enp2s0
iface enp2s0 inet static
    address 172.19.74.1/24
root@bms:~# cat /etc/hosts
127.0.0.1 localhost
172.19.74.1 bms.ironic.lab bms
root@bms:~# hostname -i
172.19.74.1
root@bms:~# hostname -f
bms.ironic.lab
  • enp1s0 (192.168.0.13/24): LAN 網絡
  • enp2s0 (172.19.74.1/24): OOB/IB 網絡

對于 Kolla Ansible 項目來說,至關重要的一點是服務器名稱——在本場景中是 bms 和 bms.ironic.lab——必須解析到 OpenStack 內部服務將要監聽的 IP 地址(172.19.74.1)。在所提議的實驗中,這個 IP 地址與 OOB/IB 管理網絡的 IP 地址相同。

2.2 Podman

作為 Docker 的直接替代品,Podman 即使對新手來說也很容易使用。安裝非常直接,因為它已作為標準軟件包包含在大多數 GNU/Linux 發行版中:

root@bms:~# apt install -y podman
...
root@bms:~# podman info
host:
  arch: amd64
  buildahVersion: 1.28.2
  cgroupControllers:
  - cpu
  - memory
  - pids
cgroupManager: systemd
cgroupVersion: v2
...
version:
  APIVersion: 4.3.1
  Built: 0
  BuiltTime: Thu Jan 1 01:00:00 1970
  GitCommit: ""
  GoVersion: go1.19.8
  Os: linux
  OsArch: linux/amd64
  Version: 4.3.1

如果您習慣使用 Docker 并希望為了方便而保留 docker 命令,您也可以安裝 podman-docker 包,它會為此創建一個專用的包裝器。然而,在大多數情況下,一個簡單的 alias docker=podman 可能就足夠了。

與 Docker 最明顯的區別之一是,Podman 使用調用它的用戶來運行容器,而不依賴于一個集中的守護進程。如果多個用戶運行容器,那么只有擁有這些容器的用戶才能通過 podman container ps 命令看到它們;root 用戶也不例外。

2.3 管理用戶

創建一個管理用戶(例如 kolla)來執行各種操作,始終是一個好的實踐。這在安全性和功能性方面都有好處,可以將部署環境與您的個人用戶或 root 用戶分離開來:

root@bms:~# useradd --system --add-subids-for-system \
  -d /var/lib/kolla \
  -c 'Kolla Administrator' \
  -s /bin/bash \
  -m kolla
root@bms:~> passwd kolla
New password: *********
Retype new password: *********
passwd: password updated successfully

注意:--add-subids-for-system選項是必需的,以允許即使是系統用戶也能執行無根容器 (rootless containers)。

確保該用戶能夠通過 sudo 執行 root 命令:

root@bms:~# echo 'kolla ALL=(ALL:ALL) NOPASSWD:ALL' >/etc/sudoers.d/kolla

現在我們可以用 kolla 管理用戶連接并繼續進行服務器配置。

2.4 Python 虛擬環境(venv)

用于裸金屬配置和部署 OpenStack 本身的 OpenStack 組件也可以作為 PyPI 包 獲取。在大多數最新的 GNU/Linux 發行版中,強烈不建議在系統級別安裝 Python 包。要擁有一個包含必要軟件的 Python 環境,而又不“污染”系統的 Python 環境,最方便的方法是創建一個與先前創建的管理用戶相關聯的 Python 虛擬環境:

kolla@bms:~$ sudo apt install -y \
  python3-dbus \
  python3-venv
...
kolla@bms:~$ python3 -m venv --system-site-packages $HOME
...
kolla@bms:~$ cat >>~/.profile <<EOF
# 激活 Python 虛擬環境
if [ -f "\$HOME/bin/activate" ]; then
    . "\$HOME/bin/activate"
fi
EOF
kolla@bms:~$ source ~/bin/activate
kolla@bms:~$ python3 -m pip install -U pip

修改用戶主目錄中的 .profile 文件可以在每次登錄時自動激活虛擬環境。同時,使用 --system-site-packages選項可以訪問系統的 Python 庫(例如 python3-dbus),而無需重新安裝它們。

注意:要在虛擬環境中安裝 dbus-python 包(相當于系統包 python3-dbus),從而避免使用 --system-site-packages 選項,您需要安裝開發工具:sudo apt install build-essential pkg-config libdbus-1-dev libglib2.0-dev python3-dev。如果您選擇這條路,最好在生產環境中安裝后移除編譯器。

2.5 OpenStack Kolla Ansible

Kolla Ansible 項目的主要目標是簡化和最大化 OpenStack 配置和管理的效率。為實現這一目標,它利用 Ansible 實現自動化和可復現性,并將 OpenStack 組件封裝在 Docker 容器中,以簡化其部署、更新和擴展。

Kolla Ansible 依賴于一個特定且嚴格的 Python 包及其各自版本的鏈條。使用先前配置的 Python 虛擬環境有助于在 kolla-ansible 包的各種版本之間保持分離和一致性,特別是 Ansible 本身及其各種 Ansible Galaxy 庫依賴項。

kolla@bms:~$ sudo apt install -y tree yq
...
kolla@bms:~$ python3 -m pip install kolla-ansible docker podman
...
kolla@bms:~$ kolla-ansible --version
kolla-ansible 19.4.0
kolla@bms:~$ kolla-ansible install-deps
Installing Ansible Galaxy dependencies
Starting galaxy collection install process
Process install dependency map
...
kolla@bms:~$ ansible --version
ansible [core 2.17.9]
  config file = None
  configured module search path = ['/var/lib/kolla/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /var/lib/kolla/lib/python3.11/site-packages/ansible
  ansible collection location = /var/lib/kolla/.ansible/collections:/usr/share/ansible/collections
  executable location = /var/lib/kolla/bin/ansible
  python version = 3.11.2 (main, Nov 30 2024, 21:22:50) [GCC 12.2.0] (/var/lib/kolla/bin/python3)
  jinja version = 3.1.6
  libyaml = True

注意:tree 和  yq 包不是必需的;它們包含本文中用于目錄檢查和簡化 YAML 和 JSON 文件管理的實用程序。

讓我們安裝 OpenStack 命令行客戶端:

kolla@bms:~$ python3 -m pip install \
  -c https://releases.openstack.org/constraints/upper/master \
  python-openstackclient \
  python-ironicclient

可選地,如果您想在登錄時通過 [tab] 鍵啟用命令自動補全,可以創建以下文件和目錄:

kolla@bms:~$ mkdir ~/.bash_completion.d
kolla@bms:~$ openstack complete >~/.bash_completion.d/openstack
kolla@bms:~$ cat >~/.bash_completion <<EOF
# 加載本地 bash 補全
if [[ -d ~/.bash_completion.d ]]; then
    for i in ~/.bash_completion.d/*; do
        [[ -f \$i && -r \$i ]] && . "\$i"
    done
fi
EOF

要配置 Kolla Ansible,您需要提供一對 YAML 文件,globals.yml 和 passwords.yml,它們定義了配置以及與各種已啟用組件的系統用戶相關聯的憑據集。此外,還需要一個 Ansible inventory 文件。所有這些文件都應放在默認目錄 /etc/kolla 中,或由 KOLLA_CONFIG_PATH 環境變量指定的目錄中。

利用 kolla 系統用戶的主目錄,我們將所有配置文件放在 /var/lib/kolla/etc 中。

注意:擁有一個不同于默認值 (/etc/kolla) 的配置目錄,可以防止在重置 Kolla 環境時(例如,使用 kolla-ansible destroy 命令)意外刪除其文件。

對于 inventory,我們將使用提供的示例 all-in-one 文件,passwords.yml 文件也類似。后者是一個模板,稍后將使用 kolla-genpwd命令填充:

kolla@bms:~$ export KOLLA_CONFIG_PATH=~/etc
kolla@bms:~$ cat >>~/.bashrc <<EOF
# Kolla Ansible 默認配置路徑
export KOLLA_CONFIG_PATH=~/etc
EOF
kolla@bms:~$ cp -a ~/share/kolla-ansible/etc_examples/kolla $KOLLA_CONFIG_PATH
kolla@bms:~$ kolla-genpwd --passwords $KOLLA_CONFIG_PATH/passwords.yml
kolla@bms:~$ mkdir -p $KOLLA_CONFIG_PATH/ansible/inventory
kolla@bms:~$ ln -s ~/share/kolla-ansible/ansible/inventory/all-in-one $KOLLA_CONFIG_PATH/ansible/inventory/

同時,我們將用一個最小化版本替換 globals.yml 配置文件:

---
# 主機配置
kolla_base_distro: "debian"
kolla_container_engine: "podman"
# OpenStack 'master' 或發布版本
openstack_release: "2025.1"
#openstack_tag_suffix: "-aarch64"
# OpenStack 服務
enable_fluentd: false
enable_haproxy: false
enable_memcached: false
enable_proxysql: false
enable_openstack_core: false
enable_ironic: true
# Kolla 配置
network_interface: "enp2s0"
kolla_internal_vip_address: "172.19.74.1"
# Ironic 配置
ironic_dnsmasq_interface: "{{ network_interface }}"
ironic_dnsmasq_dhcp_ranges:
- range: "172.19.74.101,172.19.74.199,255.255.255.0"
routers: "172.19.74.1"

注意:如果您使用的是基于 ARM 處理器的系統,容器也必須遵循相同的架構。只需取消注釋 openstack_tag_suffix: "-aarch64"這一行即可下載正確的容器。

在使用 Ansible playbooks 并嘗試解讀任何以 JSON 表示的錯誤消息之前,使用一種稍微更易讀的輸出格式可能會很方便,例如 YAML:

kolla@bms:~$ cat >~/.ansible.cfg <<EOF
[defaults]
stdout_callback = yaml
EOF

為了驗證一切是否正確,讓我們運行 kolla-ansible prechecks 命令:

圖片圖片

我們收到的紅色錯誤消息表明缺少兩個文件,它們代表 Ironic Python Agent (IPA) 的內核和 ramdisk:

failed: [localhost] (item=ironic-agent.kernel) => changed=false 
  ansible_loop_var: item
  failed_when_result: true
  item: ironic-agent.kernel
  stat:
    exists: false
failed: [localhost] (item=ironic-agent.initramfs) => changed=false 
  ansible_loop_var: item
  failed_when_result: true
  item: ironic-agent.initramfs
  stat:
    exists: false

顧名思義,它是一個用 Python 編寫的代理,充當裸金屬服務器和 OpenStack Ironic 之間的中介。它由一個實時的、在內存中運行的 GNU/Linux 操作系統組成,通過網絡啟動(PXE)加載到要管理的服務器上。

目前,我們將從 OpenStack 文檔

(https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/)

 下載一個預構建的版本:

kolla@bms:~$ mkdir -p $KOLLA_CONFIG_PATH/config/ironic
kolla@bms:~$ curl https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.kernel \
  -o $KOLLA_CONFIG_PATH/config/ironic/ironic-agent.kernel
kolla@bms:~$ curl https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/ipa-centos9-master.initramfs \
  -o $KOLLA_CONFIG_PATH/config/ironic/ironic-agent.initramfs

這兩個文件(ironic-agent.kernel 和 ironic-agent.initramfs)必須放在 $KOLLA_CONFIG_PATH/config/ironic/ 目錄中。稍后它們將被一個為我們的需求專門創建的自定義版本所取代。

現在我們可以重新運行 kolla-ansible prechecks 命令:

圖片圖片

注意:每個報告的錯誤都必須被糾正,并且預檢查步驟必須重新執行,直到獲得一個干凈的結果(errors=0)。

2.6 OpenStack Ironic “獨立”配置

在“獨立”模式下,Ironic 可以獨立于其他 OpenStack 服務運行。這使您可以使用其功能而無需安裝整個云平臺(盡管您會放棄私有云環境可能提供的一系列高級功能)。因此,$KOLLA_CONFIG_PATH/globals.yml 文件包含以下幾行:

...<SNIP>...
enable_openstack_core: false
enable_ironic: true
...<SNIP>...

enable_openstack_core: false 選項禁用了所有本應由 Kolla Ansible 自動安裝的組件,包括 Keystone、Glance、Nova、Neutron、Heat 和 Horizon。相反,enable_ironic: true 只啟用了 Ironic。

2.7 Ironic 配置

ironic.conf配置文件,應放置在 $KOLLA_CONFIG_PATH/config/ 中,必須包含特定的指令以啟用要支持的 BMC 類型(Ironic 稱之為 硬件類型 (Hardware Types))以及其他關于如何管理特定領域的說明。

對于 Ironic 管理的每個領域,都有相應的“接口”來控制操作:

  • BIOS:管理 BIOS 設置。
  • Boot:提供引導機制(例如,PXE、虛擬介質等)。
  • Console:訪問串行控制臺。
  • Deploy:管理節點安裝和清理。
  • Firmware:更新 BIOS/UEFI、RAID 控制器等。
  • Inspect:收集硬件配置。
  • Management:管理服務器引導模式。
  • Network:與 OpenStack 的網絡服務交互。
  • Power:管理電源狀態。
  • RAID:配置 RAID 卷。
  • Rescue:提供恢復功能。
  • Storage:與 OpenStack 的存儲系統交互。
  • Vendor:提供額外的特定于供應商的功能。
[DEFAULT]
enabled_hardware_types = ipmi,redfish
enabled_bios_interfaces = no-bios
enabled_boot_interfaces = ipxe
enabled_console_interface = no-console
enabled_deploy_interfaces = direct
enabled_firmware_interfaces = no-firmware
enabled_inspect_interfaces = agent
enabled_management_interfaces = ipmitool,redfish
enabled_network_interfaces = noop
enabled_power_interfaces = ipmitool,redfish
enabled_raid_interfaces = agent
enabled_rescue_interfaces = agent
enabled_storage_interfaces = noop
enabled_vendor_interfaces = ipmitool,redfish
[conductor]
deploy_kernel = http://{{ ironic_http_interface_address }}:{{ ironic_http_port }}/ironic-agent.kernel
deploy_ramdisk = http://{{ ironic_http_interface_address }}:{{ ironic_http_port }}/ironic-agent.initramfs
rescue_kernel = http://{{ ironic_http_interface_address }}:{{ ironic_http_port }}/ironic-agent.kernel
rescue_ramdisk = http://{{ ironic_http_interface_address }}:{{ ironic_http_port }}/ironic-agent.initramfs

在 [conductor] 部分,我們可以指定用于系統安裝和恢復的默認內核和 ramdisk。變量 ironic_http_interface_address 和 ironic_http_port——其名稱已足夠自明——將在實際配置文件創建過程中由 Ansible 用其各自的值進行擴展。

2.8 OpenStack 部署

讓我們檢查一下配置目錄 $KOLLA_CONFIG_PATH,它應該包含以下文件:

kolla@bms:~$ tree $KOLLA_CONFIG_PATH
/var/lib/kolla/etc
├── ansible
│   └── inventory
│   └── all-in-one
├── config
│   ├── ironic
│   │   ├── ironic-agent.initramfs
│   │   └── ironic-agent.kernel
│   └── ironic.conf
├── globals.yml
└── passwords.yml
5 directories, 6 files
  • globals.yml:OpenStack Kolla 的 YAML 配置文件;
  • passwords.yml:包含各組件使用的用戶和密碼的 YAML 文件;
  • ansible/inventory/all-in-one:默認的 Ansible inventory;
  • config/ironic.conf:包含 OpenStack Ironic 特定配置選項的 INI 文件;
  • config/ironic/ironic-agent.{kernel,initramfs}:與 Ironic Python Agent 相關的二進制文件。

要在實際部署前預先驗證配置,您可以運行 kolla-ansible validate-config 命令,如果沒有錯誤需要糾正,最終可以繼續執行 kolla-ansible deploy 命令:

圖片圖片

注意:如果出現錯誤,為了獲得更多的調試信息,您可以通過使用相應數量的“-v”選項重新運行命令來增加 Ansible 消息的“詳細程度”(例如,kolla-ansible deploy -vvv)。

部署完成后,將有多個容器處于活動狀態:一些是服務容器,另一些是 OpenStack Ironic 特有的容器:

  • kolla_toolbox:這是一個管理“代理”容器。
  • cron:用于執行計劃的批處理操作(例如,logrotate)。
  • mariadb[tcp/3306]:用于 OpenStack 持久化數據的數據庫。
  • rabbitmq[tcp/5672]:用于跟蹤事務性或有狀態活動的消息隊列。
  • ironic_conductor:Ironic 的業務邏輯。
  • ironic_api[tcp/6385]:RESTful API 前端 (裸金屬 API)。
  • ironic_tftp[udp/69]:用于通過 PXE 提供內核和 ramdisk 的 Trivial FTP (FTP over UDP)。
  • ironic_http[tcp/8089]:HTTP 倉庫。
  • ironic_dnsmasq[udp/67]:DHCP 服務器。
kolla@bms:~$ sudo podman container ps -a
CONTAINER ID  IMAGE                        CREATED        STATUS                      NAMES
978e287862b4  kolla-toolbox:2025.1         5 minutes ago  Up 5 minutes ago            kolla_toolbox
6d0150fa51e2  cron:2025.1                  5 minutes ago  Up 5 minutes ago            cron
a9df741f70c6  mariadb-clustercheck:2025.1  4 minutes ago  Up 4 minutes ago            mariadb_clustercheck
e222e740d7ce  mariadb-server:2025.1        4 minutes ago  Up 4 minutes ago (healthy)  mariadb
efe4ebcce42c  rabbitmq:2025.1              4 minutes ago  Up 4 minutes ago (healthy)  rabbitmq
fd7169161d76  ironic-conductor:2025.1      3 minutes ago  Up 3 minutes ago (healthy)  ironic_conductor
040e1ae3254e  ironic-api:2025.1            3 minutes ago  Up 3 minutes ago (healthy)  ironic_api
6a3956ff2c25  ironic-pxe:2025.1            3 minutes ago  Up 3 minutes ago            ironic_tftp
26f5c058b419  ironic-pxe:2025.1            3 minutes ago  Up 3 minutes ago (healthy)  ironic_http
be427175421b  dnsmasq:2025.1               3 minutes ago  Up 3 minutes ago            ironic_dnsmasq

相關組件的最終配置可以在 /etc/kolla 目錄中找到,該目錄只能用 root 權限訪問:

kolla@bms:~$ sudo tree /etc/kolla/etc/kolla
├── cron
│   ├── config.json
│   └── logrotate.conf
├── ironic-api
│   ├── config.json
│   ├── ironic-api-wsgi.conf
│   └── ironic.conf
├── ironic-conductor
│   ├── config.json
│   └── ironic.conf
├── ironic-dnsmasq
│   ├── config.json
│   └── dnsmasq.conf
├── ironic-http
│   ├── config.json
│   ├── httpd.conf
│   ├── inspector.ipxe
│   ├── ironic-agent.initramfs
│   └── ironic-agent.kernel
├── ironic-tftp
│   └── config.json
├── kolla-toolbox
│   ├── config.json
│   ├── erl_inetrc
│   ├── rabbitmq-env.conf
│   └── rabbitmq-erlang.cookie
├── mariadb
│   ├── config.json
│   └── galera.cnf
├── mariadb-clustercheck
│   └── config.json
└── rabbitmq
    ├── advanced.config
    ├── config.json
    ├── definitions.json
    ├── enabled_plugins
    ├── erl_inetrc
    ├── rabbitmq.conf
    └── rabbitmq-env.conf
11 directories, 29 files

這包括默認的 OpenStack Kolla 配置,并結合了位于由 $KOLLA_CONFIG_PATH 變量標識的目錄下 config文件夾中文件的特定變動。在本實驗中,該目錄是 /var/lib/kolla/etc/config,而默認情況下應為 /etc/kolla/config。

或者,托管自定義配置文件的目錄可以在 globals.yml文件中通過設置 node_custom_config 變量來定義 。

注意:這些配置文件可以獨立于部署過程,使用 kolla-ansible genconfig 命令生成。

要檢查 Ironic 服務是否已啟動并運行,我們可以直接使用命令 curl http://172.19.74.1:6385 | yq -y 查詢 API:

name: OpenStack Ironic API
description: Ironic is an OpenStack project which enables the provision and management
  of baremetal machines.
default_version:
  id: v1
  links:
    - href: http://172.19.74.1:6385/v1/
      rel: self
  status: CURRENT
  min_version: '1.1'
  version: '1.96'
versions:
  - id: v1
    links:
      - href: http://172.19.74.1:6385/v1/
        rel: self
    status: CURRENT
    min_version: '1.1'
    version: '1.96'

我們再通過命令行測試一下客戶端:

kolla@bms:~$ openstack \
  --os-endpoint=http://172.19.74.1:6385 \
  --os-auth-type=none \
  baremetal driver list
+---------------------+----------------+
| Supported driver(s) | Active host(s) |
+---------------------+----------------+
| ipmi                | bms            |
| redfish             | bms            |
+---------------------+----------------+
kolla@bms:~$ openstack \
  --os-endpoint=http://172.19.74.1:6385 \
  --os-auth-type=none \
  baremetal conductor list
+----------------+-----------------+-------+
| Hostname.      | Conductor Group | Alive |
+----------------+-----------------+-------+
| bms            |                 | True  |
+----------------+-----------------+-------+
kolla@bms:~$ openstack \
  --os-endpoint=http://172.19.74.1:6385 \
  --os-auth-type=none \
  baremetal conductor show bms
+-----------------+---------------------------+
| Field           | Value                     |
+-----------------+---------------------------+
| created_at      | 2025-03-31T17:50:26+00:00 |
| updated_at      | 2025-04-01T17:16:56+00:00 |
| hostname        | bms                       |
| conductor_group |                           |
| drivers         | ['ipmi', 'redfish']       |
| alive           | True                      |
+-----------------+---------------------------+

作為第二種選擇,您可以用OS_ENDPOINT和 OS_AUTH_TYPE 環境變量替換 --os-endpoint 和 --auth-type 參數:

kolla@bms:~$ export OS_ENDPOINT=http://172.19.74.1:6385/
kolla@bms:~$ export OS_AUTH_TYPE=none
kolla@bms:~$ openstack baremetal driver show ipmi -f yaml | grep ^def
default_bios_interface: no-bios
default_boot_interface: ipxe
default_console_interface: no-console
default_deploy_interface: direct
default_firmware_interface: no-firmware
default_inspect_interface: agent
default_management_interface: ipmitool
default_network_interface: noop
default_power_interface: ipmitool
default_raid_interface: no-raid
default_rescue_interface: agent
default_storage_interface: noop
default_vendor_interface: ipmitool
kolla@bms:~$ openstack baremetal driver show redfish -f yaml | grep ^def
default_bios_interface: no-bios
default_boot_interface: ipxe
default_console_interface: no-console
default_deploy_interface: direct
default_firmware_interface: no-firmware
default_inspect_interface: agent
default_management_interface: redfish
default_network_interface: noop
default_power_interface: redfish
default_raid_interface: redfish
default_rescue_interface: agent
default_storage_interface: noop
default_vendor_interface: redfish

另外,OpenStack 客戶端會按特定順序在以下文件系統位置使用一個名為 clouds.yaml 的文件:

  1. 當前目錄
  2. ~/.config/openstack 目錄
  3. /etc/openstack 目錄
kolla@bms:~$ mkdir -p ~/.config/openstack
kolla@bms:~$ cat >~/.config/openstack/clouds.yaml <<-EOF 
clouds:
  ironic-standalone:
    endpoint: http://172.19.74.1:6385
    auth_type: none
EOF

注意:如果 clouds.yaml 文件中有多個配置,則必須使用 --os-cloud 命令行選項(例如,openstack --os-cloud=ironic …)或通過 OS_CLOUD 環境變量(例如,export OS_CLOUD=ironic)來指定相關條目。

責任編輯:武曉燕 來源: 新鈦云服
相關推薦

2013-09-18 14:46:32

StormStorm集群

2014-08-06 09:39:27

OpenStack

2013-12-11 22:08:22

2012-05-16 09:59:30

OpenStack架構

2015-07-30 09:43:10

獨立游戲開發入門

2013-09-16 15:46:50

OpenStack云計算

2015-08-28 10:01:30

OpenStack超融合虛擬化

2015-03-04 13:33:20

OpenStack K云平臺開源

2017-01-18 10:23:54

EasyStackOpenStack

2018-01-17 12:59:43

基金會

2015-08-12 10:47:23

紅帽LinuxOpenStack

2011-06-28 11:30:21

郵件歸檔

2016-01-31 13:42:57

OpenStack私有云公共云

2020-04-17 13:35:15

OpenStack私有云云計算

2014-08-06 09:11:52

OpenStack

2011-07-01 13:31:29

Ubuntu Linux QVFB

2012-07-12 16:00:32

OpenStackSwift架構

2015-04-24 09:52:32

OpenStackCloudFoundrPaaS

2015-05-12 10:47:49

openstack k開源分析

2017-08-21 07:50:18

EasyStackOpenStack部署
點贊
收藏

51CTO技術棧公眾號

美女做暖暖视频免费在线观看全部网址91 | 国产欧美日韩一级| 亚洲欧美变态国产另类| 天天天干夜夜夜操| av网址在线播放| 91啪亚洲精品| 国产精品一区二区三区免费视频| 亚洲成人生活片| 亚洲a级精品| 欧美精品成人一区二区三区四区| 人妻av无码专区| 国产一区电影| 成人午夜私人影院| 国产精品99久久久久久人 | 亚洲天堂2024| 97人人做人人爽香蕉精品| 一区二区三区在线播放| 欧美色欧美亚洲另类七区| 99热这里只有精品1| 狂野欧美性猛交xxxx巴西| 欧美美最猛性xxxxxx| 欧美做受xxxxxⅹ性视频| 午夜av成人| 亚洲va韩国va欧美va精品| 一区不卡字幕| 韩国三级在线观看久| 成人精品免费看| 91久久精品美女高潮| 无码人妻黑人中文字幕| 亚洲高清在线| 欧美另类在线观看| 欧美肥妇bbwbbw| 精品盗摄女厕tp美女嘘嘘| 亚洲第一视频网站| 特黄视频免费观看| 日韩欧美一区二区三区免费观看| 亚洲国产精品尤物yw在线观看| 2025韩国大尺度电影| 免费看男男www网站入口在线| 国产成人超碰人人澡人人澡| 成人福利网站在线观看11| 日本三级一区二区三区| 亚洲资源av| 97av在线影院| 日韩福利片在线观看| 欧美国产专区| 欧美剧在线观看| 午夜剧场免费在线观看| 999久久久国产精品| 中文字幕久久亚洲| 天天操天天干天天操天天干| 国产成人av| 亚洲欧美国产日韩天堂区| 亚洲国产精品无码久久久久高潮| 高潮按摩久久久久久av免费| 日韩精品一区二区三区四区视频| 九九热视频免费| 国产一区二区三区免费观看在线| 4438亚洲最大| 日日夜夜精品视频免费观看 | 欧美久久免费观看| jizz大全欧美jizzcom| 456成人影院在线观看| 91福利在线观看| 天天操天天摸天天爽| 四虎4545www国产精品| 在线观看免费视频综合| 亚州精品一二三区| 亚洲精品三区| 日韩一级免费观看| 91超薄肉色丝袜交足高跟凉鞋| 白嫩白嫩国产精品| 亚洲精品天天看| 人人爽人人爽人人片| 欧美激情理论| 欧美疯狂做受xxxx高潮| 国产精品成人国产乱| 国产视频一区免费看| 人人澡人人澡人人看欧美| 国产99免费视频| 激情偷乱视频一区二区三区| 成人免费在线看片| 青青青草原在线| 国产精品理伦片| 欧洲金发美女大战黑人| 999福利在线视频| 91成人在线免费观看| 亚洲美女性囗交| 婷婷视频一区二区三区| 亚洲精品一区二区久| 国产馆在线观看| 欧美另类亚洲| 国产99久久精品一区二区 夜夜躁日日躁| 超碰在线观看91| 精品亚洲aⅴ乱码一区二区三区| 91香蕉亚洲精品| 天堂91在线| 中文字幕字幕中文在线中不卡视频| 97超碰人人澡| 欧美成人免费全部网站| 亚洲国产精品va在线看黑人| 国产精品情侣呻吟对白视频| 欧美日韩亚洲一区三区| 国产不卡一区二区在线播放| 国产色片在线观看| 91麻豆成人久久精品二区三区| 亚洲欧美日韩另类精品一区二区三区 | 欧洲成人一区二区| 精品美女在线观看视频在线观看| 亚洲午夜精品网| 一区二区xxx| 国产乱论精品| 日韩一二三在线视频播| 全部毛片永久免费看| 精品一区二区三区免费播放| 久久99欧美| jizzjizz亚洲| 欧美性大战久久久久久久蜜臀| 亚洲精品一区二区18漫画| 精品视频免费| 91国产精品视频在线| 亚洲熟妇无码久久精品| 久久丝袜美腿综合| bt天堂新版中文在线地址| 99亚洲伊人久久精品影院| 亚洲国产另类 国产精品国产免费| 日本一二三区在线观看| 免费久久99精品国产| 免费99视频| 91色在线看| 日韩欧美亚洲国产精品字幕久久久| 五月激情四射婷婷| 男女精品视频| 精品一区久久久久久| heyzo高清国产精品| 欧美一级在线观看| 永久免费看mv网站入口| 日本中文字幕一区| 欧美一区二区在线| 天堂网在线最新版www中文网| 精品乱人伦小说| 国产这里有精品| 国产在线日韩欧美| 一区二区不卡在线视频 午夜欧美不卡'| 欧美va在线观看| 国产一区二区三区在线观看视频| 超碰超碰超碰超碰| 91免费观看国产| 久久无码高潮喷水| 一区二区导航| 日产精品久久久一区二区福利 | 国产亚洲精品美女| 欧美日韩综合一区二区三区| 久久日一线二线三线suv| 人妻少妇被粗大爽9797pw| 天天做夜夜做人人爱精品| 欧洲一区二区视频| 黄色电影免费在线看| 一本到三区不卡视频| 第一次破处视频| 蜜桃在线一区二区三区| 在线免费一区| 日韩欧美高清一区二区三区| 久久久欧美一区二区| 五月婷婷开心中文字幕| 色中色一区二区| 一区二区三区伦理片| 麻豆精品国产91久久久久久| 免费观看中文字幕| 91精品久久久久久综合五月天| 久国内精品在线| 神马午夜精品95| 日韩欧美福利视频| 午夜国产福利视频| 国产一区二区在线看| 亚洲人成无码网站久久99热国产| 欧美久久精品| 国产精品久久久久av| 老司机在线视频二区| 亚洲成色999久久网站| 天堂在线免费观看视频| 中文字幕第一区综合| 午夜福利123| 一二三区精品| 亚洲一区二区三区加勒比| 警花av一区二区三区| 97在线观看免费高清| 在线免费av电影| 精品国产免费久久| 青青青国产在线 | 国产精品无码免费专区午夜| 私拍精品福利视频在线一区| 国产精品一区久久| 男女在线观看视频| 亚洲午夜久久久久久久| a天堂在线视频| 日韩欧美成人区| 国产黄色片在线免费观看| 久久综合九色综合欧美亚洲| 在线视频日韩欧美| 免费永久网站黄欧美| 一区二区三区四区久久| 欧美有码在线| 91夜夜未满十八勿入爽爽影院| 午夜激情电影在线播放| 欧美大片va欧美在线播放| 日韩porn| 精品国产乱码久久久久久免费| 国产精品午夜一区二区| 亚洲成av人片| 三级av在线免费观看| 久久久久久久久岛国免费| 一卡二卡三卡四卡五卡| 日本在线播放一区二区三区| 波多野结衣家庭教师在线| 国产精品成人a在线观看| 欧美极品色图| 福利片在线一区二区| 91在线无精精品一区二区| 神马久久资源| 欧美有码在线视频| 黄色小说在线播放| 久久视频免费在线播放| 国产在线一在线二| 亚洲加勒比久久88色综合| a级片免费视频| 欧美日韩久久一区| 天天射天天干天天| 日韩欧美精品中文字幕| 国产精品不卡av| 亚洲一区在线视频观看| 小泽玛利亚一区二区免费| 国产欧美一二三区| wwwwww日本| 久久青草国产手机看片福利盒子 | 91片黄在线观看喷潮| 在线观看91视频| 狠狠人妻久久久久久| 精品久久久久人成| 日韩av电影网址| 亚洲国产精品麻豆| 妺妺窝人体色www婷婷| 一区二区三区免费看视频| 久草视频手机在线| 亚洲欧美一区二区三区孕妇| 午夜三级在线观看| 日韩美女精品在线| 午夜爽爽爽男女免费观看| 亚洲视频中文字幕| 国产性xxxx| 夜夜嗨av一区二区三区中文字幕 | 欧美伦理视频网站| 亚洲图片中文字幕| 欧美日韩五月天| 中文字幕在线播放日韩| 欧美日韩你懂的| 国产精品自偷自拍| 日韩欧美专区在线| а√天堂资源在线| 亚洲成年人在线| 五月天福利视频| 亚洲少妇激情视频| 91xxx在线观看| 久热精品视频在线免费观看| 日本在线视频中文有码| 久久久亚洲精品视频| 三级中文字幕在线观看| 国产mv久久久| 伊人久久大香伊蕉在人线观看热v 伊人久久大香线蕉综合影院首页 伊人久久大香 | 在线观看国产精品网站| 中文字幕人妻精品一区| 欧美剧在线免费观看网站 | 亚洲视频axxx| 日本中文字幕视频在线| 美女扒开尿口让男人操亚洲视频网站| 亚洲综合图区| 欧美一区亚洲一区| 欧美爱爱视频| 国语精品免费视频| 成人精品电影| 美女av免费观看| 国产精品综合色区在线观看| 男女污污的视频| 国产一区二区剧情av在线| 中文字幕人妻一区二区三区| 国产午夜亚洲精品午夜鲁丝片 | 亚洲国产一二三| 日日夜夜狠狠操| 欧美一区二区三区爱爱| 三级做a全过程在线观看| 日韩在线观看你懂的| jizz一区二区三区| 国产日韩换脸av一区在线观看| 91精品入口| 视频一区视频二区视频三区视频四区国产| 亚洲精品网址| 久久久精品在线视频| 国产精品乡下勾搭老头1| 波多野结衣一本| 波多野结衣的一区二区三区| 久久精品人人做人人爽人人| 亚洲欧美一区二区三区久久| 日本视频精品一区| 毛片在线免费| 日本一区二区三区在线观看| 自拍偷拍中文字幕| 国产精品久线在线观看| 日本在线视频免费观看| 欧美色图12p| 五月天婷婷激情网| 久久精品国产免费观看| www.com.cn成人| 波多野结衣精品久久| 爽成人777777婷婷| 日本毛片在线免费观看| 国产精品小仙女| 91ts人妖另类精品系列| 欧美日韩黄色大片| www.桃色av嫩草.com| www国产91| 国产精品极品美女在线观看| 国产免费一区| 欧美人与禽猛交乱配视频| 色片在线免费观看| 久久久久久久久久美女| 国产精品成人网站| 日韩欧美高清dvd碟片| 日韩三级影院| 国产精品欧美一区二区三区奶水| 日韩三级毛片| 五十路熟女丰满大屁股| 国产成人日日夜夜| 天天色天天综合| 欧美色视频一区| 国产在线中文字幕| 日本sm极度另类视频| 激情小说亚洲色图| 人妻互换免费中文字幕| 国产在线日韩欧美| 内射一区二区三区| 欧美猛男gaygay网站| 自拍视频在线免费观看| 国产精品第二页| 国产成人短视频在线观看| 国产极品粉嫩福利姬萌白酱| 99亚偷拍自图区亚洲| 日本午夜小视频| 欧美精品一区二区在线播放| 黄色美女视频在线观看| 国产在线一区二区三区播放| 伊人久久成人| 黄色a一级视频| 欧美日韩综合视频| 经典三级在线| 国产精品天天狠天天看| 日本不卡高清| 五月天婷婷影视| 亚洲欧美区自拍先锋| www.亚洲黄色| 久久全国免费视频| 欧美亚洲国产日韩| 国产精品丝袜久久久久久消防器材 | 一区二区在线视频| 黄色日韩网站| 青少年xxxxx性开放hg| 国产一区二区成人久久免费影院| 亚洲色婷婷一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 91破解版在线观看| 日本日本精品二区免费| 久久er99精品| 久久久久无码国产精品不卡| 亚洲国产精品久久91精品| 日韩欧美看国产| 伊人狠狠色丁香综合尤物| 国产成人精品午夜视频免费| 青青国产在线观看| 亚洲午夜国产成人av电影男同| 91在线成人| 日本男女交配视频| 久久亚洲影视婷婷| 亚洲最新av网站| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲色图丝袜| 国内精品国产三级国产aⅴ久| 五月天亚洲精品| 8888四色奇米在线观看| 99热在线播放| 日韩一区精品字幕| 天天干中文字幕| 亚洲人av在线影院| 久久综合给合| 红桃av在线播放| 亚洲欧美另类小说视频| 日本一二三区在线视频| 91精品视频在线播放| 国产日韩亚洲| 唐朝av高清盛宴| 亚洲香蕉成人av网站在线观看 | 亚洲成人av片在线观看|