Ansible(剧本,角色编写)

一、剧本(playbook)

1.playbook介绍

playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的tasks,可以让远端主机达到预期的状态。playbook是由一个或多个”play”组成的列表。 当对一台机器做环境初始化的时候往往需要不止做一件事情,这时使用playbook会更加适合。通过playbook你可以一次在多台机器执行多个指令。通过这种预先设计的配置保持了机器的配置统一,并很简单的执行日常任务。

ansible通过不同的模块实现相应的管理,管理的方式通过定义的清单文件(hosts)所管理的主机包括认证的方式连接的端口等。所有的功能都是通过调用不同的模块(modules)来完成不同的功能的。不管是执行单条命令还是play-book都是基于清单文件。

**playbook格式:**playbook由YMAL语言编写。YMAL格式是类似于JSON的文件格式,便于人理解和阅读,同时便于书写。

一个剧本里面可以有多个play,每个play只能有一个tasks,每个tasks可以有多个name。

2.playbooks的组成

**Tasks:**任务,即通过 task 调用 ansible 的模块将多个操作组织在一个playbook 中运行。

**Variables:**变量

**Templates:**模板

**Handlers:**处理器,当 changed 状态条件满足时,(notify)触发执行的操作。

**Roles:**角色

3.案例:编写httpd的playbook

(1)vim test1.yaml

---
- name: install apache
  hosts: webservers
  remote_user: root
  tasks:
  - name: test connection
    ping:
  - name: disable selinux
    command: '/usr/sbin/setenforce 0'
    ignore_errors: true
  - name: disable firewalld
    service: name=firewalld state=stopped
  - name: install httpd
    yum: name=httpd
  - name: copy configuration file for httpd
    copy: src=/opt/httpd.conf dest=/etc/httpd/conf/httpd.conf
    notify: "restart httpd"
  - name: start httpd
    service: name=httpd state=started enabled=yes
  handlers:
  - name: restart httpd
    service: name=httpd state=restarted

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3GYpZJo0-1647754704509)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\3.bmp)]

在服务端准备http.conf文件

(在/etc/httpd/http.conf 复制一份文件到opt目录下 )

并且修改其中 端口 和server name 端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5qejaMZg-1647754704510)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\0.1.bmp)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BaW9RqWv-1647754704511)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\1.bmp)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxFsYXQd-1647754704511)(C:\Users\zhuquanhao\Desktop\截图命令集合\linux\Ansible\Ansible之playbook剧本\2.bmp)]

(2)运行playbook 剧本

ansible-playbook test1.yaml

补充参数:
-k ( -ask-pass) :用来交互输入ssh密码
-K ( -ask-become-pass) :用来交互输入sudo密码
-u:指定用户

ansible-playbook test1.yaml --syntax-check
检查yaml文件的语法是否正确
ansible-playbook test1.yaml --list-task
#检查tasks任务
ansible-playbook test1.yaml --list-hosts
#检查生效的主机
ansible-playbook test1.yaml --start-at-task='install httpd'
#指定从某个task开始运行

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值