星期日, 7月 29, 2018

使用 ansible 安裝 azure-cli 套件 with openSUSE Leap

使用 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:




沒有留言: