【Ansible】我想在Amazon EC2上使用ansible-navigator〜第1章:创建执行环境镜像〜
首先
在Red Hat Ansible Automation Platform Workshops中,Ansible的执行命令是ansible-navigator。虽然不详细说明为何改用ansible-navigator,但作为过去一直使用ansible-playbook的人来说,有必要更新知识。因此,我们将在Amazon EC2上进行ansible-navigator的环境配置。首先,作为第一章,我们将进行“创建执行环境镜像”的操作。
简而言之
-
- Ansibleの実行コマンドは、ansible-playbook -> ansible-navigatorに変化
-
- Amazon EC2でansible-navigatorの環境構築が可能
execution-environment.ymlはの実行環境のイメージをビルドするために必要な.ymlファイル
前提 (paraphrased in Chinese):起点
-
- Amazon EC2の使用方法がわかること
別で構築したRHEL8のサーバーでも可能ですが、一部手順が異なる可能性があります
详细了解
1. 创建和登录EC2实例。
-
- 登录AWS并选择服务“EC2”。
-
- 按以下条件创建EC2实例。
-
- 名称:指定任意名称。
-
- 应用程序和操作系统映像(Amazon机器映像):Red Hat Enterprise Linux 8(HVM),SSD Volume Type,Bansir支持。
-
- 实例类型:t2.micro。
-
- 密钥对(登录):指定个人密钥对。
-
- 网络设置>防火墙(安全组):设置允许来自个人IP的SSH连接。
-
- 使用终端软件登录到创建的实例。
-
- 用户名:ec2-user。
- 身份验证方法:指定私钥。
2. 安装Podman
-
- 安装podman
-
- $ 使用sudo dnf install podman -y命令安装podman
确认podman已安装
$ 使用podman –version命令,查看podman的版本为4.2.0
安装Python3.9
这次我们将安装并使用Python3.9的pyenv。
步骤参照GitHub上的pyenv/pyenv。
-
- 安装pyenv所需的模块
必要的模块请参考GitHub > pyenv / pyenv > Suggested build environment
$ sudo dnf install -y \
gcc \
make \
zlib-devel \
bzip2 \
bzip2-devel \
readline-devel \
sqlite \
sqlite-devel \
openssl-devel \
tk-devel \
libffi-devel \
xz-devel \
patch \
git
从GitHub克隆pyenv
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
修改~/.bashrc文件
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bashrc
$ echo ‘command -v pyenv >/dev/null || export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bashrc
$ echo ‘eval “$(pyenv init -)”‘ >> ~/.bashrc
加载~/.bashrc文件
$ source ~/.bashrc
检查pyenv版本
$ pyenv –version
pyenv 2.3.13-1-g86a4423b
安装Python 3.9.7
pyenv install 3.9.7
切换Python版本
pyenv global 3.9.7
pyenv rehash
确认已切换到所需的Python版本
$ python –version
Python 3.9.7
4. 安装ansible-navigator
-
- 升级 pip:
-
- $ pip install –upgrade pip
安装 ansible-navigator:
$ pip install ansible-navigator
确认 ansible-navigator 已安装:
$ ansible-navigator –version
ansible-navigator 2.2.0
确认 ansible-builder/ansible-runner 存在:
安装 ansible-navigator 后,也会同时安装 ansible-builder 和 ansible-runner
$ pip list
包名 版本
——————- ——–
ansible-builder 1.2.0
ansible-navigator 2.2.0
ansible-runner 2.3.1
~以下省略~
5. 创建执行环境的配置文件
参考Ansible Builder指南,创建执行环境配置文件。
在操作用户(/home/ec2-user)的目录下创建以下文件。
/home/ec2-user/ansible_test
execution-environment.yml
ansible.cfg
requirements.yml
requirements.txt
-
- 创建操作用目录
-
- $ mkdir ~/ansible_test
-
- $ cd ~/ansible_test
创建execution-environment.yml文件
从Red Hat Quay.io > ansible / ansible-runner选择执行环境的基本图像EE_BASE_IMAGE
$ vi execution-environment.yml
execution-environment.yml
—
version: 1
build_arg_defaults:
EE_BASE_IMAGE: ‘quay.io/ansible/ansible-runner:stable-2.12-latest’
ansible_config: ‘ansible.cfg’
dependencies:
galaxy: requirements.yml
python: requirements.txt
additional_build_steps:
prepend: |
RUN whoami
RUN cat /etc/os-release
append:
– RUN echo This is a post-install command!
– RUN ls -la /etc
创建ansible.cfg文件
$ vi ansible.cfg
ansible.cfg
[defaults]
host_key_checking = False
创建requirements.yml文件
根据需要添加Ansible Collections
$ vi requirements.yml
requirements.yml
—
collections:
– community.general
创建requirements.txt文件
在此安装ansible-navigator和jmespath。这些将在第2章中使用
ansible-lint:安装以通过ansible-navigator使用lint
jmespath:安装以方便地提取变量
$ vi requirements.txt
requirements.txt
ansible-lint==5.4.0
jmespath
创建执行环境镜像
完成后,将自动创建上下文文件夹
$ ansible-builder build -f execution-environment.yml -t ansible-test:v0.0.1 -v 3
确认执行环境镜像已创建
如果执行环境镜像的名称和标签匹配,则没有问题
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/ansible-test v0.0.1 03fe7ddbce84 10 seconds ago 1.12 GB
~省略以下内容~
最后
-
- 第1章では、ansible-navigatorを使用する第一歩として実行環境イメージを作成しました
- 第2章では、実際にansible-navigatorを使ってplaybookを実行します
请提供URL地址。
Red Hat Ansible Automation Platform Workshops
初心者向けのAnsible Workshopサイト
Red Hat Customer Portal > Ansible Builder ガイド
実行環境の設定方法
Red Hat Quay.io > ansible / ansible-runner
実行環境の作成に利用可能なコンテナレジストリ
GitHub > pyenv / pyenv
pyenvのHome
GitHub > pyenv / pyenv > Suggested build environment
pyenvに必要なモジュールの一覧
【Ansible】Amazon EC2でansible-navigatorを使いたい~第2章:ansible-navigatorの実行~
次の記事