【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实例。

    1. 登录AWS并选择服务“EC2”。

 

    1. 按以下条件创建EC2实例。

 

    1. 名称:指定任意名称。

 

    1. 应用程序和操作系统映像(Amazon机器映像):Red Hat Enterprise Linux 8(HVM),SSD Volume Type,Bansir支持。

 

    1. 实例类型:t2.micro。

 

    1. 密钥对(登录):指定个人密钥对。

 

    1. 网络设置>防火墙(安全组):设置允许来自个人IP的SSH连接。

 

    1. 使用终端软件登录到创建的实例。

 

    1. 用户名:ec2-user。

 

    身份验证方法:指定私钥。

2. 安装Podman

    1. 安装podman

 

    1. $ 使用sudo dnf install podman -y命令安装podman

确认podman已安装
$ 使用podman –version命令,查看podman的版本为4.2.0

安装Python3.9

这次我们将安装并使用Python3.9的pyenv。
步骤参照GitHub上的pyenv/pyenv。

    1. 安装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

    1. 升级 pip:

 

    1. $ 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

    1. 创建操作用目录

 

    1. $ mkdir ~/ansible_test

 

    1. $ 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の実行~

次の記事


广告
将在 10 秒后关闭
bannerAds