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

相关推荐
迷茫的大专生4 天前
服务器部署与 MySQL 运维学习笔记:从 Ansible 到高可用与性能优化
mysql·nginx·ansible·mysql优化·keepalive
杜子不疼.7 天前
Ansible 批量部署 Node Exporter:从单机安装流程到远程主机统一执行
ai·ansible
运维全栈笔记8 天前
Ansible 自动化 Nginx 集群部署实战:动态 Inventory、滚动发布与 Role 工程化
nginx·自动化·ansible
User_芊芊君子12 天前
让异构增量同步飞起来-KFS全链路并行同步方案
运维·自动化·ansible
あ-15 天前
ansible-playbook安装seaweedfs三节点集群
ansible
Tassel_YUE17 天前
非 ansible 主机批量执行命令方法:psssh 和 pscp(随手记)
linux·网络·ssh·scp·ansible
亿朝亿夕25 天前
ansible安装
ansible
.柒宇.1 个月前
运维常见面试题_07_配置管理与监控(Ansible · Prometheus · Alertmanager)· 容器编排(Kubernetes)
运维·k8s·ansible·prometheus
相顾若初见1 个月前
Ansible部署k8s
容器·kubernetes·ansible
wzq11_6661 个月前
ansible部署项目——基于tidb数据库安装zabbix_server
ansible·zabbix·tidb