1.Ansible-PlayBook
Playbook是通过yaml文件来配置实现
YAML的语法和其他高阶语言类似,并且可以简单表达清单、散列表、标量等数据结构。其结构(Structure)通过空格来展示,序列(Sequence)里的项用"-"来代表,Map里的键值对用":"分隔。YAML文件扩展名通常为.yaml,如example.yaml。
Playbook可以用来管理复杂任务
对于需反复执行的、较为复杂的任务,我们可以通过定义 Playbook 来搞定。Playbook 是 Ansible 真正强大的地方,它允许使用变量、条件、循环、以及模板,也能通过角色 及包含指令来重用既有内容。下面我们来看看一些具体的实例。
实践1:批量安装MySQL数据库
编写yaml
代码语言:javascript复制 - hosts: webserver remote_user: root tasks: - name: mysql-server install yum: name=mysql-server state=present
参数解析
代码语言:javascript复制选项解析:hosts:webserver #指定要执行指定任务的主机,其可以是一个或多个由冒号分隔主机组remote_user:root #用于指定远程主机上的执行任务的用户tasks:# 任务-name:mysql-server installing # 给这个任务起的名字yum:name=mysql-server #利用yum模块,安装软件的包名为mysql-serverstate=present #状态为安装 state=absent #状态为卸载
执行
代码语言:javascript复制ansible all -a "/bin/rpm -q mysql-server"ansible-playbook mysql-server.yaml
看到结果,ok=2 changed=1 说明客户机上的mysql-server安装成功了!
验证一下 mysql-server是否成功
代码语言:javascript复制ansible all -a "/bin/rpm -q mysql-server "ansible all -a "/sbin/service mysqld start " #启动mysqld
实践2:使用playbook创建计划任务
编写yaml
代码语言:javascript复制 - hosts: webserver remote_user: root tasks: - name: crontab cron: name="testjob" day='10' job="sh /opt/backup.sh"
运行
代码语言:javascript复制 ansible-playbook crond.yaml
看到结果,ok=2 changed=1 说明客户机上的crontab计划创建成功了!
代码语言:javascript复制ansible all -a 'crontab -l ' #查看各个节点crontab
注:
"ansible-doc -l" 命令来查看它内置的有哪些模块。
"ansible-doc 模块名" 命令来查看具体模块的详细用法。
感谢查阅,欢迎你给我留言,也欢迎分享更多的朋友一起阅读!