【Ansible】我想在Amazon EC2上使用ansible-navigator~第2章:执行ansible-navigator~
首先
这是上一篇文章(【Ansible】在Amazon EC2上使用ansible-navigator~第1章:创建执行环境镜像~)的续篇。
本次作为第2章,我们将进行”ansible-navigator的执行”。同时,我们还打算尝试通过”ansible-navigator执行ansible-lint”。
太长不看
ansible-playbookコマンドはansible-navigator runコマンドに変化した
ansible-navigatorには実行した内容のリプレイ機能がある
ansible-navigator 2.0.0からansible-lintが呼び出せるようになった
前提 tí)
-
- 前回の記事(【Ansible】Amazon EC2でansible-navigatorを使いたい~第1章:実行環境イメージの作成~)の手順にもとづいて、実行環境イメージが作成してあること
記事の内容をもとに作業をしてみたい方のみ
详细了解
创建ansible-navigator的配置文件
根据 Ansible 文档 > ansible-navigator 设置的参考,创建 ansible-navigator 的配置文件。
将所需的文件添加到上一篇文章创建的文件夹中。
/home/ec2-user/ansible_test
execution-environment.yml
ansible.cfg
requirements.yml
requirements.txt
context
ansible-navigator.yml ☆ ここから下を新規追加
.ansible-lint
playbooks
test.yml
-
- 切换到操作目录
-
- $ cd ~/ansible_test
创建ansible-navigator.yml文件
自动创建日志存储位置./logs,无需手动创建
$ vi ansible-navigator.yml
ansible-navigator.yml
—
ansible-navigator:
ansible:
config:
path: ansible.cfg
execution-environment:
container-engine: podman
enabled: true
image: localhost/ansible-test:v0.0.1
pull:
policy: never
logging:
append: true
file: ./logs/ansible-navigator.log
level: debug
mode: stdout
playbook-artifact:
enable: true
replay: ./logs/artifact/replay.json
save-as: ./logs/artifact/artifact.json
ansible-lint:
config: .ansible-lint
创建ansible-lint配置文件
$ vi .ansible-lint
.ansible-lint
—
use_default_rules: true
2. 创建并执行用于确认操作的Playbook。
-
- 创建用于确认操作的Playbook(test.yml)
-
- $ mkdir playbooks
-
- $ vi playbooks/test.yml
test.yml
—
– name: “获取EE镜像信息”
hosts: localhost
gather_facts: false
tasks:
– name: “获取ansible事实”
ansible.builtin.setup:
gather_subset:
– “min”
– name: “显示ansible事实”
ansible.builtin.debug:
var: ansible_facts.env
– name: “获取ansible版本”
ansible.builtin.command: “ansible –version”
register: r_ansible_version
changed_when: false
– name: “显示r_ansible_version”
ansible.builtin.debug:
var: r_ansible_version.stdout_lines
– name: “获取pip包信息”
community.general.pip_package_info:
clients: “pip”
register: r_pip_package
– name: “显示r_pip_info”
ansible.builtin.debug:
var: >-
r_pip_package.packages.pip |
json_query(“*[0].{name: name, version: version}”)
执行Playbook
要使用ansible-navigator执行Playbook,请使用ansible-navigator run命令
有关ansible-playbook和ansible-navigator命令的比较,请参见自动导航器命令比较
$ ansible-navigator run playbooks/test.yml
使用artifact来确认Playbook的重放
ansible-navigator具有重放功能,用于确认执行内容
$ ansible-navigator replay ./logs/artifact/artifact.json
3. 运行 ansible-lint
根据 [Ansible] ansible-navigator 2.0.0 機能ピックアップ Part 1: 追加サブコマンド編的文章,据说从ansible-navigator 2.0.0开始可以调用ansible-lint,所以让我们实际去试试看。
-
- 创建用于ansible-lint测试的playbook
-
- $ vi playbooks/lint-test.yml
lint-test.yml
—
– name: “lint test”
hosts: localhost
gather_facts: false
vars:
test: “test var”
tasks:
– debug:
msg: “{{test}}”
运行ansible-lint
$ ansible-navigator lint lint-test.yml
确认以下两个问题被指出:
unnamed-task:存在未命名的任务
playbooks/lint-test.yml:8 Task/Handler: debug msg={{test}}
var-spacing:变量前后应添加空格:{{test}}
playbooks/lint-test.yml:8 Task/Handler: debug msg={{test}}
修改ansible-lint配置文件
编辑ansible-lint的配置文件,将unnamed-task排除在外
在skip_list中添加要排除的规则
$ vi .ansible-lint
.ansible-lint
—
use_default_rules: true
skip_list: # 添加
– unnamed-task
再次运行ansible-lint
$ ansible-navigator lint lint-test.yml
不再指出unnamed-task问题
var-spacing:变量前后应添加空格:{{test}}
playbooks/lint-test.yml:8 Task/Handler: debug msg={{test}}
最后
-
- 第2章では、実際にansible-navigatorを使ってplaybookを実行しました。
- リプレイ機能やansible-lintが使えるようになり、より便利になったと感じます
请提供网址作为参考。
【Ansible】Amazon EC2でansible-navigatorを使いたい~第1章:実行環境イメージの作成~
前回の記事
Ansible Documentation > ansible-navigator settings
ansible-navigatorの設定ファイルの書き方
Red Hat Customer Portal > 1.4. 自動コンテンツナビゲーターコマンドの比較
ansible-playbookとansible-navigatorコマンドの比較
[Ansible] 「つまずき Ansible 【Part36】ansible-navigator」ふりかえり
ansible-navigatorの使い方
[Ansible] ansible-navigator 2.0.0 機能ピックアップ Part 1: 追加サブコマンド編
ansible-navigator 2.0.0の機能紹介