三大雲平台工具容器升級小記 - 使用 openSUSE Leap 15.2 Container
OS: container with openSUSE Leap 15.2
上次升級是 2020/5/31 , 這次會來升級的原因是
使用 openSUSE Leap 15.2
升級 gcloud 版本
升級 azure-cli 版本
升級 aws cli 版本
先整理結果
升級前
OS: openSUSE Leap 15.1
awscli: aws-cli/2.0.17 Python/3.7.3
gcloud: Google Cloud SDK 290.0.1
azure-cli: 2.6.0
升級後
OS: openSUSE Leap 15.2
awscli: aws-cli/2.0.36 Python/3.7.3
gcloud: Google Cloud SDK 303.0.0
azure-cli: 2.9.1
AWS CLI v2 安裝文件
GCP Cloud SDK 版本
這次的做法還是會透過 docker build 指令來進行
我有比較過 docker build 以及使用現有的 docker image 修改後再使用 docker commit 建立的 image 大小還是很有差異的
Dockerfile 的部分我是拿之前 openSUSE Leap 15.1 來修改
修改細節
Update time
使用 openSUSE Leap 15.2
修改 pip3 安裝 boto 而非 boto3
Google SDK 版本還有下載的檔案路徑以及檔案名稱
列出 diff 的結果給大家參考
> diff opensuseLeap152_ansible_20200802_Dockerfile opensuseLeap151_ansible_20200531_Dockerfile
1,2c1,2
< # openSUSE Leap 15.2 with ansible, azure-cli, aws cli, gcloud
< FROM opensuse/leap:15.2
---
> # openSUSE Leap 15.1 with ansible, azure-cli
> FROM opensuse/leap:15.1
6c6
< # update: 20200802
---
> # update: 20200509
12c12
< # Install python3-pip, upgrade pip, ansible[azure], boto
---
> # Install python3-pip, upgrade pip, ansible[azure], boto3
16c16
< pip3 install boto
---
> pip3 install boto3
64c64
< # Install google cloud SDK 303.0.0
---
> # Install google cloud SDK 290.0.1
66,67c66,67
< RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \
< tar zxvf google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \
---
> RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-290.0.1-linux-x86_64.tar.gz && \
> tar zxvf google-cloud-sdk-290.0.1-linux-x86_64.tar.gz && \
Dockerfile 內容如下
我檔案的名稱取名爲 opensuseLeap152_ansible_20200802_Dockerfile
# openSUSE Leap 15.2 with ansible, azure-cli, aws cli, gcloud
FROM opensuse/leap:15.2
# Author
# MAINTAINER 已經棄用, 之後要使用 LABEL 方式
# update: 20200802
LABEL maintainer="sakana@cycu.org.tw"
# Set LANG for UTF-8 - for Chinese
ENV LANG C.UTF-8
# Install python3-pip, upgrade pip, ansible[azure], boto
RUN zypper install -y python3-pip && \
pip3 install --upgrade pip && \
pip3 install ansible[azure] && \
pip3 install boto
# Install openssh, set ls alias
RUN zypper install -y openssh
RUN echo "alias ls='ls --color=tty'" >> /root/.bashrc
# Install wget, download azure_rm.py, set permission
RUN zypper install -y wget
# azure_rm.py no need to download
# Starting with Ansible 2.8, Ansible provides an Azure dynamic-inventory plug-in
# https://docs.ansible.com/ansible/latest/plugins/inventory/azure_rm.html
# old azure_rm.py URL https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/azure_rm.py
#
# Create working directory in /root
RUN mkdir /root/.azure && \
mkdir /root/.aws && \
mkdir /root/playbook && \
mkdir -p /root/.config/gcloud && \
wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/ansible.cfg && \
mv /ansible.cfg /root && \
wget https://raw.githubusercontent.com/sakanamax/LearnAnsible/master/template/hosts && \
mv /hosts /root
#### Azure ####
# 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 tar gzip jq unzip less bind-utils iputils groff
RUN zypper install -y vim tar gzip jq unzip less bind-utils iputils groff
RUN echo "set encoding=utf8" > /root/.vimrc
#### AWS ####
# Install awscli v1
#RUN pip3 install awscli
#RUN echo "source /usr/bin/aws_bash_completer" >> /root/.bashrc
# Install awscli v2
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
unzip awscliv2.zip && \
/aws/install
RUN echo "complete -C '/usr/local/bin/aws_completer' aws" >> /root/.bashrc
#### GCP ####
# Install google cloud SDK 303.0.0
ENV CLOUDSDK_CORE_DISABLE_PROMPTS 1
RUN wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \
tar zxvf google-cloud-sdk-303.0.0-linux-x86_64.tar.gz && \
/google-cloud-sdk/install.sh && \
echo "if [ -f '/google-cloud-sdk/path.bash.inc' ]; then . '/google-cloud-sdk/path.bash.inc'; fi" >> /root/.bashrc && \
echo "if [ -f '/google-cloud-sdk/completion.bash.inc' ]; then . '/google-cloud-sdk/completion.bash.inc'; fi" >> /root/.bashrc
使用 docker build 指令建立 image
> docker build -t sakana/ansible_opensuse152:20200802 -f ./opensuseLeap152_ansible_20200802_Dockerfile .
使用 -f 指定 Dockerfile 名稱
最後是 ” . “ 目前的目錄
測試 container image
> docker run -v ~/.aws:/root/.aws -v ~/.azure:/root/.azure -v ~/.config/gcloud:/root/.config/gcloud -it sakana/ansible_opensuse152:20200802 /bin/bash
測試結果 OK, 建立 tag
觀察資訊
> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sakana/ansible_opensuse152 20200802 d1bb9da2d2e1 14 seconds ago 1.66GB
opensuse/leap 15.2 b02baf32bb00 4 days ago 105MB
sakana/ansible_opensuse151 latest 0fcb15bb33a0 2 months ago 1.78GB
建立 tag
> docker tag d1bb9da2d2e1 sakana/ansible_opensuse152:latest
登入 docker
> docker login
上傳 image
> docker push sakana/ansible_opensuse152:20200802
> docker push sakana/ansible_opensuse152:latest
完工, 以後使用就用
> docker run -v ~/.aws:/root/.aws -v ~/.azure:/root/.azure -v ~/.config/gcloud:/root/.config/gcloud -it sakana/ansible_opensuse152 /bin/bash
~ enjoy it
Reference:
https://sakananote2.blogspot.com/2020/05/aws-cli-v2-with-opensuse-leap-151.html
http://sakananote2.blogspot.com/2020/01/python-3-with-opensuse-leap-151.html
http://sakananote2.blogspot.com/2019/07/with-opensuse-leap-15-container.html
http://sakananote2.blogspot.com/2019/05/ansible-azure-cli-awscli-gcloud-with.html
http://sakananote2.blogspot.com/2019/11/with-opensuse-leap-151-container.html
沒有留言:
張貼留言