【2023】ansible-高级任务控制
创始人
2025-05-29 10:14:49
0
简单介绍

目录

    • Tag:任务标签
    • Include:任务复用
    • Ignore_errors:错误处理关键字
    • force_handlers
    • change_when
    • vault:数据加密

Tag:任务标签

tag用于标记一个或多个任务(task)或是一个或多个角色(role),以便在执行playbook时只运行被标记的任务或角色。这可以帮助我们精细控制playbook的执行范围,只执行我们想要执行的任务或角色,提高执行效率和安全性。

  • 一个任务打一个标签
  • 一个任务打多个标签
  • 多个任务打一个标签

使用标签时:

  • -t:指定某个标签
  • –skip-tags:执行除此标签外的所有标签

示例:

- name: install nginxyum:name: nginxstate: latesttags: - nginx
ansible-playbook playbook.yml --tags nginx

Include:任务复用

Include用于将一个或多个文件或任务列表包含到当前任务或playbook中。它可以帮助我们组织和重用任务和playbook,提高代码的可读性和可维护性。

比如:A项目需要重启某服务,B项目也需要重启这个服务。那么就可以使用Include来减少工作量

案例:多任务调用相同task

  • 定义一个restart的yml文件
vim restart_nginx.yml- name: Restart nginxsystemd:name: nginxstate: restarted
  • A项目调用restart_nginx.yml
- hosts: webtasks:- name: A projectcommand: echo "A"- name: Restart nginxinclude: restart_nginx.yml
  • B项目调用restart_nginx.yml
- hosts: webtasks:- name: B projectcommand: echo "B"- name: Restart nginxinclude: restart_nginx.yml

Ignore_errors:错误处理关键字

当在执行Ansible任务时,设置"ignore_errors"参数为True,表示在执行该任务时,如果遇到错误,Ansible不会终止任务的执行,而是会将错误记录下来,然后继续执行后续任务。
这个参数通常用于在某些情况下,某些任务的失败并不会影响整个任务链的执行,需要继续执行后续任务的场景中。

示例:

---
- hosts:remote_user: roottasks:- name: Ignore Falsecommand: /bin/falseignore_errors: yes- name: touch filefile: patch=/tmp/yyang.txt state=touch

这个示例是说,第一个name执行失败后,继续执行后面name,而不是停止。

force_handlers

中途的task执行失败,强制执行handlers。

示例:

- hosts:force_handlers: yestasks:- name: Touch filefile: path=/tmp/handles state=touchnotify: Restart nginx server- name: Installed packagesyum: name: aaastate: latesthandlers:- name: Restart nginx serversystemd: name=nginx state=restarted

此示例说明第二个name执行会报错,但是依然会执行handlers。

change_when

change_when参数用于控制在何种条件下报告任务状态的更改。

默认情况下,如果任务对被管理系统进行了任何修改,Ansible会将任务报告为“已更改”。但是,有些情况下,您只希望在特定条件下才将任务报告为“已更改”,而不对被控端做出修改时输出ok。

changed_when: false

vault:数据加密

将敏感的数据文件进行加密,而非存放在明文的playbook中。

示例:

[root@localhost roles]# echo "hello world" >>hello.yml
[root@localhost roles]# ansible-vault-2 encrypt hello.yml 
New Vault password: 
Confirm New Vault password: 
Encryption successful
[root@localhost roles]# cat hello.yml 
$ANSIBLE_VAULT;1.1;AES256
35353638363039623231623338646562613363623031663262653162306664633939306437306134
3039666238623039383237623233613639646666346233360a663864313638636562333931656232
37616163323765373339376262343862396661363933613539646239636361663066653235663738
3362653964373464360a353030386536386238613932313936633765383232326237393566633430
3766

输入密码后再查看文件只能看到加密后的数据。

查看内容:需要输入密码

[root@localhost roles]# ansible-vault-2 view hello.yml 
Vault password: 
hello world

解除加密:需要输入密码

[root@localhost roles]# ansible-vault-2 decrypt hello.yml 
Vault password: 
Decryption successful
[root@localhost roles]# cat hello.yml 
hello world

相关内容

热门资讯

“侨连五洲·七彩云南”——第2... 在全球化浪潮奔涌不息、区域合作日益紧密的当下,各国之间的经济交流与文化互鉴正以前所未有的深度和广度展...
“今夜梁宵”江南古运河行浸式光... 中新网江苏新闻5月30日电(唐娟 孙权)华灯初上,运河潋滟。5月29日晚,“今夜梁宵”江南古运河行浸...
端午遇六一乐在其“粽” 青岛机... 青岛新闻网5月30日讯(记者 张晓楠 通讯员 李德鲲)2025年端午节假期(5月31日至6月2日),...
基于LIN通信的诊断概述 文章目录 前言一、帧的类型1.1 诊断帧(Diagnostic Frame) 二、LIN的传输层2....
MySQL数据库的定时备份实践 1.背景介绍也许你会发现本站建站时间久远,但是本站的各类访问量总是很低,...
潮汕三日游,去潮汕旅游大概多少... 潮汕三日游,去潮汕旅游大概多少钱 作为一个对美食和文化充满热情的旅行者,我一直对潮汕这片土地心怀向往...
端午假期安全提示,转给师生家长 01 关注交通安全 1.出行途中注意交通安全,遵守交通规则,乘坐正规运营车辆,不坐“三无”车辆,不坐...
西藏几月是旺季? 我最近和老公商量着要去西藏玩7天,说实话,我对旅行的准备总是不太上心,所以这次特别希望能有一份详尽的...
甘南9日游攻略详细安排,一家三... 甘南,这片被《国家地理》盛赞为“人生必去的50个地方之一”的净土,宛如一颗镶嵌在青藏高原东北边缘的璀...
尝鲜福建四果汤,清凉一夏不是梦 夏日炎炎,来一碗福建四果汤,瞬间驱散暑气,开启清凉模式。作为闽南地区的传统消暑甜品,四果汤历史悠久,...
宜昌三峡三天两晚景点攻略,宜昌... 最近,我有幸和朋友们一起踏上了前往宜昌三峡的旅程。宜昌三峡,那山清水秀、景色宜人的地方,一直是我向往...
泰国启动“萨瓦滴·你好”旅游推... 曼谷5月30日电(李映民 赵婧楠)为庆祝中泰建交50周年,泰国国家旅游局于5月29日在曼谷启动“萨瓦...
智慧景区一体化建设方案 随着2023年文旅部《关于推动智慧旅游发展的指导意见》出台,全国景区掀起数字化转型浪潮。如何在激烈竞...
端午邂逅“六一” 东丽区精心打... 天津北方网讯:即将到来的端午佳节与“六一”国际儿童节不期而遇,当传统文化与童趣时光奇妙邂逅,为文旅注...
中签率100%,茅台机场购酒规... 蓝鲸新闻5月30日讯(记者 朱欣悦)5月29日,遵义茅台机场微信公众号披露,在2025年5月30日、...
新疆昌吉消防深入旅游景区开展端... 图为消防人员在景区民族风情园商户开展消防培训。刘臣 摄 5月29日,新疆昌吉州消防救援支队阜康市消...
17岁中学生成中国首位北坡登顶... 近日,多家媒体报道称北京第八十中学学生、17岁的李浩榕成为中国首位从北坡登顶珠峰的青少年的消息登上热...
甘南扎尕那:藏在石头山里的&q... 甘南扎尕那:藏在石头山里的“神仙村落”,雨后云雾缭绕,仿佛穿越异世界! 在甘南迭部县的群山深处,有一...