ansible之playbook

一、介绍

playbook(剧本): 是ansible⽤于配置,部署,和管理被控节点的剧本。⽤于ansible操作的编排。

使⽤的格式为yaml格式(saltstack,elk,docker,docker,compose,kubernetes等也都会⽤到yaml格式)

二、YMAL格式

1)以.yaml或.yml结尾

2)⽂件的第⼀⾏以 "---"开始,表明YMAL⽂件的开始(可选的)

3)以#号开头为注释

4)列表中的所有成员都开始于相同的缩进级别, 并且使⽤⼀个 "-" 作为开头(⼀个横杠和⼀个空格)

5)⼀个字典是由⼀个简单的 键: 值 的形式组成(这个冒号后⾯必须是⼀个空格)

6)注意: 写这种⽂件不要使⽤tab键,都使⽤空格

三、playbook实例

1. playbook编排vsftpd

root@m0 \~\]# vim test001.yml --- - hosts: group01 //⽤于指定要执⾏任务的主机,其可以是⼀个或多个由冒号分隔主机组. remote_user: root //⽤于指定远程主机上的执⾏任务的⽤户 tasks: //任务列表, 按顺序执⾏任务,handlers: 类似task,但需要使⽤notify通知调⽤ - name: 卸载vsftp yum: name=vsftpd state=absent - name: 安装vsftpd yum: name=vsftpd state=latest - name: 启动服务 service: name=vsftpd state=started enabled=yes - name: 修改配置文件 command: sed -i '/\^anonymous_enable=YES/s/YES/NO/g' /etc/vsftpd/vsftpd.conf notify: - abcdefg handlers: - name: abcdefg service: name=vsftpd state=restarted \[root@m0 \~\]# ansible-playbook ./test001.yml //执行 ### 2.修改httpd的端⼝为8080,再执⾏playbook测试 \[root@m0 \~\]# vim test002.yml --- - hosts: group01 remote_user: root tasks: - name: 将管理机的rope文件复制到被控制主机 copy: src=/etc/yum.repos.d dest=/etc/ - name: 安装httpd yum: name=httpd state=present - name: 修改配置文件 command: sed -i '/\^Listen/s/80/8080/g' /etc/httpd/conf/httpd.conf - name: 修改默认的资源文件 command: echo "xxxxxxx" \> /var/www/html/index.html - name: 启动httpd服务 service: name=httpd state=started \[root@m0 \~\]# ansible-playbook ./test002.yml ### 3.编排nfs搭建与客户端挂载 \[root@m0 \~\]# vim /etc/ansible/hosts s1 ansible_ssh_host=192.168.1.68 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=q s2 ansible_ssh_host=192.168.1.69 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=q \[root@m0 \~\]# vim test003.yml --- - hosts: s1 remote_user: root tasks: - name: 安装nfs-utils yum: name=nfs-utils state=latest - name: 安装rpcbind yum: name=rpcbind state=latest - name: 创建共享目录 file: path=/static state=directory - name: 配置文件 shell: echo '/static \*(ro,sync)' \> /etc/exports - name: 启动服务nfs service: name=nfs state=started enabled=yes - name: 启动服务rpdbind service: name=rpcbind state=started enabled=yes - hosts: s2 remote_user: root tasks: - name: 安装nfs-utils yum: name=nfs-utils state=latest - name: 创建挂载目录 file: path=/nfs state=directory - name: 挂载nfs文件 command: mount -t nfs 192.168.1.68:/static /nfs \[root@m0 \~\]# ansible-playbook ./test003.yml

相关推荐
千航@abc19 小时前
深度剖析 ansible:从部署基础到模块运用及剧本编写
运维·centos·ansible
一只栖枝1 天前
RHCA核心课程技术解析3:Ansible 自动化平台深度实践指南
linux·服务器·自动化·ansible·运维工程师·红帽认证·rhce认证
chairon2 天前
Ansible:playbook实战案例
运维·服务器·网络·ansible
leo·Thomas4 天前
什么是 Ansible Playbook?
ansible·playbook
luojiaao6 天前
【CICD】Ansible知识库
ansible
hhzz7 天前
从零开始使用 Ansible 自动化部署 SpringBoot Web 应用(含 MySQL、Redis、Vue、Nginx)
前端·自动化·ansible
zxnbmk11 天前
ansible速查手册
linux·服务器·ansible
book012111 天前
Ansible 自动化运维
运维·自动化·ansible
巷子里的童年ya11 天前
Ansible模块
linux·centos·ansible
IT成长日记12 天前
Ansible命令行模式常用模块使用案例(三)
linux·ansible·自动化运维·ad-hoc 模式)