星期四, 4月 18, 2019

ansible with openSUSE Leap 15 container image 建立小記

ansible with openSUSE Leap 15 container image 建立小記

OS: openSUSE Leap 15


最近換了 MacAir 13 Mojave 10.14.4


嘗試在 Mac Mojave 上面裝 ansible[azure], 但是經歷了太多版本相容性的問題
-- > 放棄, 決定使用 openSUSE Leap 15 container 來解決


以下是我的 Dockerfile


# openSUSE Leap 15 with ansible, azure-cli
FROM opensuse/leap:15


# Author
# MAINTAINER 已經棄用, 之後要使用 LABEL 方式
LABEL maintainer="sakana@cycu.org.tw"


# Install python2-pip, upgrade pip, ansible[azure]
RUN zypper install -y python2-pip && \
 pip2 install --upgrade pip && \
 pip2 install ansible[azure]


# Install wget, download azure_rm.py, set permission
RUN zypper install -y wget && \
 wget  https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/azure_rm.py && \
 chmod a+x azure_rm.py


# Install azure-cli
RUN zypper install -y curl && \
 rpm --import https://packages.microsoft.com/keys/microsoft.asc && \
 zypper addrepo --name 'Azure CLI' --check https://packages.microsoft.com/yumrepos/azure-cli azure-cli && \
 zypper install --from azure-cli -y azure-cli


#install vim
RUN zypper install -y vim

使用 docker build 指令將他打包成 image 並上傳到 docker hub

要使用的方式很簡單, 預設的 Tag 為 latest
下載 docker image
> docker  pull  sakana/ansible_opensuse15


這個 image 包含
  • ansible
  • azure-cli
  • azure SDK
  • azure_rm.py ( Dynamic inventory 使用 )
    • 但是最近 Azure 改變驗證的方式, 所以目前 azure_rm.py 可能有點問題, 還需要觀察還有實驗
      • 原本驗證檔案是看 ~/.azure/credentials
      • 現在可能會去看 ~/.azure/azureProfile.json


使用方式很簡單


> docker  run  -it  sakana/ansible_opensuse15  /bin/bash


在 container 內執行  az login 指令
# az  login


  • 會被要求開啟瀏覽器進行帳號驗證
  • 驗證成功會自動建立 ~/.azure 目錄以及相關驗證檔案


接下來就可以開始使用 ansible 指令進行管理
日後計畫把  ansible with aws 或是 ansible with gcp 放進來


~ enjoy it


Reference:

沒有留言: