有自訂安裝腳本的範例嗎?

有自訂安裝腳本的範例嗎?

我似乎找不到任何有關如何提供安裝後運行的自訂腳本的資訊。社區可以提供這方面的例子嗎?

答案1

根據您使用的安裝程序,MAAS 提供不同的機制來自訂安裝。這個答案假設您正在使用科廷安裝人員(也稱為快速路徑安裝程式)成為預設設置瑪莎1.7

MAAS用途雲端初始化作為其安裝過程的一部分。有多種方法可以自訂 cloud-init 行為,最簡單的方法是簡單地提供用戶資料腳本,在作業系統安裝完成後,cloud-init 在首次引導期間執行。

在 MAAS 中,這可以透過向node start CLI命令。該命令的格式為:

maas <user> node start <node uuid> user_data=<script> distro_series=<name>

其中<script>實際上是一個 base64 編碼的字串。舉一個具體的例子,假設您想要執行一個名為 的腳本,addkey.sh該腳本將一些輸出列印到安裝控制台,從 Launchpad 導入 SSH 金鑰對於用戶ubuntu,並將結果記錄到日誌檔案中:

#!/bin/sh
(
echo ======== Hi World ======================
echo ============== $(date) =================
ssh-import-id user
) | tee /my.log

您可以發出以下命令:

$ script=$(base64 addkey.sh)
$ maas myuser node start node-79b67e82-d25c-11e4-a333-00163eca91de \
  user_data=$script distro_series=trusty

如果成功,應該會傳回(一段時間後)以下格式的輸出:

Success.
Machine-readable output follows:
{
    "status": 6, 
    "macaddress_set": [
        {
...

現在,在部署後執行該腳本一個特定節點。如果您希望設定命令以便它們運行任意節點late_commands它是透過 MAAS 安裝的,您可以添加要作為節的一部分運行的命令/etc/maas/preseeds/curtin_userdata文件。有關使用此機制在網路介面上設定兩個 VLAN 的更複雜範例,請參閱http://astokes.org/customizing-fastpath-curtin-installations/

請注意,科廷目前大部分沒有記錄;然而有一個概覽文件描述了其操作的一些細節。

comissioning script請記住,請勿將此機制與, 運行期間混淆調試階段,並且在 MAAS 節點生命週期中發生在安裝之前。調試通常用於不直接影響安裝的管理任務;例子是:

  • 韌體更新
  • 關鍵硬體組件的健全性測試
  • 老化

答案2

要注意的是,這裡的指令是針對1.0 API的。在 2.0 及更高版本中,指令為:

maas <profile> machine deploy <system_id> user_data=<base64-encoded-userdata>

相關內容