Ansible playbook

Playbooks 与 adhoc 相比,是一种完全不同的运用 ansible 的方式,是非常之强大的.

  简单来说,playbooks 是一种简单的配置管理系统与多机器部署系统的基础.与现有的其他系统有不同之处,且非常适合于复杂应用的部署.

  Playbooks 可用于声明配置,更强大的地方在于,在 playbooks 中可以编排有序的执行过程,甚至于做到在多组机器间,来回有序的执行特别指定的步骤.并且可以同步或异步的发起任务.

  使用 adhoc 时,主要是使用 /usr/bin/ansible 程序执行任务.而使用 playbooks 时,更多是将之放入源码控制之中,用之推送你的配置或是用于确认你的远程系统的配置是否符合配置规范.

  playbook使用yaml语法。yaml语法可以通过yaml官方资料查看,也可以查看Ansible中文文档的相关介绍。

ansible-playbook [options] playbook.yml [playbook2 ...]

1|0通过简单的例子来认识playbook

nginx.yml

--- - hosts: all tasks: - name: Install Nginx yum: name=nginx state=present - name: template nginx.conf template: src=./nginx.conf.js dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s' notify: - Restart Nginx Service handlers: - name: Restart Nginx Service service: name=nginx state=restarted
  1. 第一行表示该文件时yaml文件,非必须
  2. 第二行定义了该playbook针对的主机目标,all表示针对所有主机;这个参数支持Ad-Hoc模式的所有参数也支持自定义组
  3. 第三行定义了这个playbook的tasks集合
  4. 第四行定义一个tasks的名称,非必要,在运行playbook的时候可以比较明了的显示playbook运行到哪一步,建议根据tasks实际任务命名
  5. 第五行定义了一个状态的action,这里使用的是yum模块安装nginx软件包
  6. 第六行到第九行使用template模板去管理/etc/nginx/nginx.conf文件,owner和group定义该文的属主和属组,使用validate参数指定文件生产后使用nginx -t -c %s命令去做nginx文件语法验证,notify是触犯handlers,如果同步后,文件的MD5值有变化会触发Restart Nginx Service这个handler。
  7. 第十行到十二行是定义一个handler状态让nginx服务重启,handler的名称是Restart Nginx Service。

1|1检查playbook文件的语法

ansible-playbook nginx.yml --syntax-check playbook: nginx.yml

1|2执行nginx.yml剧本

ansible-playbook -i hosts nginx.yml PLAY [all] ************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************************* ok: [172.16.1.11] ok: [172.16.1.10] TASK [Install Nginx] ************************************************************************************************************* changed: [172.16.1.10] changed: [172.16.1.11] TASK [template nginx.conf] ************************************************************************************************************* ok: [172.16.1.10] ok: [172.16.1.11] PLAY RECAP ************************************************************************************************************* 172.16.1.10 : ok=3 changed=1 unreachable=0 failed=0 172.16.1.11 : ok=3 changed=1 unreachable=0 failed=0

__EOF__

本文作者StaryJie
本文链接https://www.cnblogs.com/jie-fang/p/10293202.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   StaryJie  阅读(257)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示