前言
最近有個需求,需要一次安裝和設定 32 台 Cisco UCS C240 M5SX 伺服器。由於,在安裝 Hypervisor 之前,我都會為伺服器調整 BIOS 組態設定,確保伺服器的 BIOS 組態設定值,可以採用最符合後續要運作的虛擬化工作負載。詳細資訊請參考:但是,手動一台一台去登入 Cisco UCS C240 M5SX 伺服器 CIMC (IPMI) 介面,然後又要一台一台去調整相關 BIOS 組態設定值太累人了。因此,本文筆記便出現了。在本文中,將會透過 Ansible Playbook 搭配 Ansible AWX,針對 Cisco UCS C240 M5SX 伺服器的 CIMC 組態設定值中,NTP 服務讓 Cisco UCS 伺服器能夠跟內部資料中心的 NTP Server 對時,下列是設定 NTP 服務相關項目:
- 勾選 NTP Enabled項目 (啟動 NTP 服務)
- NTP Server 1 指向至 10.10.75.15
- NTP Server 2 指向至 10.10.75.16
實作方式和結果
先前找過用 UCSM Ansible Module 不符合需求,而 imc_rest – Manage Cisco IMC hardware through its REST API 模組也不符合需求。最後,選擇採用 Cisco CIMC CLI 的方式去互動,對我來說最方便直覺好維護,再搭配用 SSH HereDoc 的方式即可達成我要的需求。
順利套用下列 Playbook 之後,便能一次為 32 台 Cisco UCS C240 M5SX 伺服器,啟用 NTP 服務並指向至內部 NTP Server 開始進行對時的動作。
剛開始啟動 NTP 服務時,查看 Status 欄位可能會出現「unsynchronised」的訊息,只要設定沒問題並稍待幾分鐘之後,便會如下圖一樣順利和指定的 NTP Server 進行時間同步校時的情況。
configure_ntp.yaml
有關組態設定 NTP 服務和指向 NTP Server 的詳細 CLI 指令,請參考下列 Cisco 官方文件:
此外,這次在實作時遇到一個麻煩就是「啟用 NTP 服務」的部份,問題點的原因是這樣的,透過 CLI 直接操作時是沒有問題的,然而轉換成 Playbook 採用 SSH HereDoc 的方式時,在「set enabled yes」時,便無法將「y」順利送過去? 反覆測試過很多不同的方式後還是沒有成功。😷
最後,便轉念一想透過 Cisco IMC RESTful API支援的方式,先將 NTP 服務啟動,然後再透過熟悉的 SSH HereDoc 的方式指向 NTP Server 便解決此次的需求。😁 有關 Cisco IMC RESTful API 詳細資訊,請參考下列 Cisco 官方文件: