iT邦幫忙

0
鐵人賽 神助攻 Nutanix

Nutanix Calm DSL – Quick Tips 2

https://ithelp.ithome.com.tw/upload/images/20201001/20129565ebYAMCwpMt.png

在此篇 Nutanix Calm DSL快速提示中,將介紹文檔中的其他容易被新用戶忽略的功能以及內容。這些小功能看似微不足道(就像開發人員世界中的許多事情一樣),但是當用作整體工作流程的一部分時,它們可以有效提高效率和生產率。

用於配置的環境變量

第一個快速技巧是環境變量的使用,可以使用環境變量來指示Calm DSL連接哪個 Prism Central IP 地址和端口,要使用的憑據。默認情況下,首次使用Calm DSL時,這些設置為空這適用於本地開發環境和使用Calm DSL容器的開發環境。

Calm DSL repo 的文件以文本格式對此進行介紹,本文將在此處進一步說明整個詳細流程。首先,讓我們看看如果缺少此配置時嘗試運行任何Calm DSL命令會發生什麼。

https://ithelp.ithome.com.tw/upload/images/20201001/20129565oPndZkOI4y.png
缺少 Calm DSL 的 Configuration 會產生錯誤

這裡有個明顯的問題,因為Calm DSL告訴我們確切的情況。我們可以透過執行以下命令直接配置DSL來解決此問題:

calm init dsl

或者,我們可以使用環境變量。在上面的錯誤消息中,顯示了可用的環境變量之一 – CALMDSLPCIP。如果設置了該怎麼辦?

https://ithelp.ithome.com.tw/upload/images/20201001/20129565ccM2e1bOXJ.png
執行“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環境變量來指定日誌級別,但是在這裡沒有更改它。

https://ithelp.ithome.com.tw/upload/images/20201001/201295655VgXQIzmHi.png
要求 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 容器,這就是檢查環境的簡單命令。

https://ithelp.ithome.com.tw/upload/images/20201001/20129565M5j5ncs4u3.png
透過 Running set | grep DSL 從我們的配置文件檢查配置是否通過

提醒:Calm DSL 已更新為不再以純文本形式顯示密碼,如上面截圖所示。故若仍看到純文本密碼,請確保您使用的是最新版本。

自定義Dockerfile

最後一件事是使用自定義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資源可以參考。

感謝您的閱讀,祝您有美好的一天!


尚未有邦友留言

立即登入留言