使用 ansible 安裝 azure-cli 套件 with openSUSE Leap
OS: openSUSE Leap 42.3 in Azure
動機:
- 使用 Azure 上面的 VM 進行一些實驗
- 有些環境光使用 Cloud-Shell 也無法滿足, 要配合 az 指令
- 不想動到實體機器, 使用 Azure 上面的 openSUSE 安裝 azure-cli來進行實驗
- 實體機器沒有裝 azure-cli 套件, 使用 ansible 來安裝
寫了一個 ansible 的 playbook 來安裝 azure-cli 套件
相關的檔案已經放到 Github 上面, 歡迎使用
hosts 檔案內容如下, 沒有特別的地方, 只有建立一個 AzureCliHost 群組來等等套用安裝
# syntax: servername options
# ansible_host -- Remote Host IP
# ansible_user -- Remote SSH User Name
# ansible_ssh_private_key_file -- SSH Key
# ansible_ssh_pass -- SSH Password for remote host
# ansible_port -- Remote SSH port
# testserver ansible_host=xxx.xxx.xxx.xxx ansible_user=root ansible_ssh_private_key_file=
# test01 ansible_host=
#### Group List ###########################
# 安裝 azure-cli 套件
[AzureCliHost]
#test01
主要的 playbook 檔案上場 azure-cli_install.yml , 使用 zypper / rpm_key / zypper_repository 這 3 個 module
檔案內容如下
---
#########################################################
#
- name: use when conditionals and setup module (facts)
hosts: all
tasks:
# 使用 setup moudule 列出 OS 種類
- name: use setup module to list os distribution
# setup moudle 可以使用 filter 過濾相關內容
setup: filter=ansible_distribution
#########################################################
- name: Install azure-cli package
# 使用群組方式安裝 use group, 請配合 hosts 內的 [AzureCliHost]
hosts: AzureCliHost
become: True
#
tasks:
- name: Install curl
# 這邊使用 disable_recommends=no 加入zypper 建議的套件, 否則不會加入 apache2等其他套件
# 這邊使用 disable_gpg_check=yes, 讓公有雲例如 azure上面的額外 repo 不用check gpg key
zypper: name={{ item }} disable_recommends=no disable_gpg_check=yes
with_items:
- curl
when: ansible_distribution == "openSUSE Leap"
#-------------------------------------------------------
# 匯入 rpm key
- name: Import RPM key
rpm_key:
state: present
key: https://packages.microsoft.com/keys/microsoft.asc
#-------------------------------------------------------
# 新增Azure Cli repo
- name: Add Azure-Cli repo
zypper_repository:
name: "azure-cli"
repo: 'https://packages.microsoft.com/yumrepos/azure-cli'
#-------------------------------------------------------
# 安裝 azure-cli
- name: Install azure-cli
# 這邊使用 disable_recommends=no 加入zypper 建議的套件, 否則不會加入 apache2等其他套件
# 這邊使用 disable_gpg_check=yes, 讓公有雲例如 azure上面的額外 repo 不用check gpg key
zypper: name={{ item }} disable_recommends=no disable_gpg_check=yes
with_items:
- azure-cli
when: ansible_distribution == "openSUSE Leap"
使用方式
將主機的 IP 以及名稱 寫入 hosts 檔案, 將主機加入 AzureCliHost 群組
如果是使用 azure 環境就參考下列的指令 來完成
# ansible-playbook --ask-pass --ask-sudo-pass -u your_user_name azure-cli_install.yml
這樣以後做實驗或是空機裝 azure-cli 應該就方便多了
之後有空再來加 Ubuntu 或是其他 OS 的部份
~ enjoy it
Reference: