在此篇 Nutanix Calm DSL快速提示中,將介紹文檔中的其他容易被新用戶忽略的功能以及內容。這些小功能看似微不足道(就像開發人員世界中的許多事情一樣),但是當用作整體工作流程的一部分時,它們可以有效提高效率和生產率。
第一個快速技巧是環境變量的使用,可以使用環境變量來指示Calm DSL連接哪個 Prism Central IP 地址和端口,要使用的憑據。默認情況下,首次使用Calm DSL時,這些設置為空這適用於本地開發環境和使用Calm DSL容器的開發環境。
Calm DSL repo 的文件以文本格式對此進行介紹,本文將在此處進一步說明整個詳細流程。首先,讓我們看看如果缺少此配置時嘗試運行任何Calm DSL命令會發生什麼。
缺少 Calm DSL 的 Configuration 會產生錯誤
這裡有個明顯的問題,因為Calm DSL告訴我們確切的情況。我們可以透過執行以下命令直接配置DSL來解決此問題:
calm init dsl
或者,我們可以使用環境變量。在上面的錯誤消息中,顯示了可用的環境變量之一 – CALMDSLPCIP。如果設置了該怎麼辦?
執行“as we’re told” 並設定 CALMDSLPCIP 的環境變數
現在我們擁有良好的進展。如果我們要重複過程,那麼最終我們將設置所有環境變量,並且可以使用Calm DSL。但這不是最有效的方式,所以讓我們看一下透過簡單的 Bash 腳本設置所有可用變量的列表。在我的開發環境中,我將此腳本稱為set_env.sh並使該腳本可執行。
#!/bin/bash
# set all required environment variables
export CALM_DSL_PC_IP=10.42.250.39
export CALM_DSL_PC_PORT=9440
export CALM_DSL_PC_USERNAME=...
export CALM_DSL_PC_PASSWORD=...
export CALM_DSL_DEFAULT_PROJECT=MLproject
在Linux環境中,我們可以如下運行該腳本。
. ./set_env.sh
然後,我們可以使用另一個簡單的Calm DSL命令檢查配置是否正確設置。
calm show config
正如預期現在可以看到配置了環境,並且可以使用Calm DSL。確實可以透過設置CALM_DSL_LOG_LEVEL環境變量來指定日誌級別,但是在這裡沒有更改它。
要求 Calm DSL 向我們展示當前環境配置
可以透過執行Calm的 init dsl 設置環境(需要手動輸入)。從自動化的角度來看,任何手動輸入,都會耗損整個自動化的過程。
綜上所述,已顯示可以使用自定義腳本來設置環境變量,Calm DSL在本地使用,即沒有Docker。但是還有另一個類似的選項,專門針對Docker容器中的Calm DSL,使用機器可讀的配置文件,包含上述腳本類似的設置。
現在讓我們一起看看這些文件
CALM_DSL_PC_IP=10.42.250.39
CALM_DSL_PC_PORT=9440
CALM_DSL_PC_USERNAME=...
CALM_DSL_PC_PASSWORD=...
CALM_DSL_DEFAULT_PROJECT=MLproject
CALM_DSL_LOG_LEVEL=INFO
請注意以下部分假定您的環境已設置為運行Docker。如果您尚未設定,請參閱介紹DSL。
如何使用我們的配置文件啟動Calm DSL容器。
docker run -it --env-file ./calm_env ntnx/calm-dsl
注意使用「 –env-file」參數。一旦執行了 Calm DSL 容器,這就是檢查環境的簡單命令。
透過 Running set | grep DSL 從我們的配置文件檢查配置是否通過
提醒:Calm DSL 已更新為不再以純文本形式顯示密碼,如上面截圖所示。故若仍看到純文本密碼,請確保您使用的是最新版本。
最後一件事是使用自定義Dockerfile,對於那些擁有Docker經驗的人來說,這是不費吹灰之力的,所以在這邊會針對FYI添加詳加說明。
如果使用默認的Dockerfile,則透過上述命令提取並運行的Calm DSL容器將運行Alpine Linux。下面顯示的是一個自定義Dockerfile的範例,該文件將基於Dockerhub Python映像提取並構建映像。此範例由Nutanix的解決方案架構師Jose Gomez提供,是為配合Jose工作流中的各種情形而創建的。
ARG VARIANT="3.7"
FROM python:${VARIANT}
ARG CALM_DSL_TARBALL="https://github.com/nutanix/calm-dsl/archive/master.zip"
WORKDIR /root
RUN mkdir -p `python3 -m site --user-site`
ENV PATH=/root/.local/bin:$PATH
RUN apt-get update && apt-get install -y sudo jq \
&& rm -rf /var/lib/apt/lists/*
RUN wget -q -O /tmp/calm-dsl.zip $CALM_DSL_TARBALL
RUN unzip /tmp/calm-dsl.zip -d /tmp \
&& rm /tmp/calm-dsl.zip \
&& cd /tmp/calm-dsl-master \
&& pip3 install --no-cache-dir -r requirements.txt virtualenv --user \
&& make dist \
&& pip3 install --no-cache-dir dist/calm.dsl*.whl --user \
&& cd ~ \
&& rm -fR /tmp/calm-dsl-master
CMD ["bash"]
即使這些快速提示都是最簡單的功能,這邊還有許多Calm DSL資源可以參考。
感謝您的閱讀,祝您有美好的一天!