国美在线网站域名建设,做eso哪家网站好,聊城网站建设动态,小软件下载网站playbook是ansible用于配置#xff0c;部署#xff0c;和被管理被控节点的剧本
playbook常用的YMAL格式#xff1a;#xff08;文件名称以 .yml结尾#xff09; 1、文件的第一行应该以 --- (三个连字符)开始#xff0c;表明YMAL文件的开始。 2、在同一…playbook是ansible用于配置部署和被管理被控节点的剧本
playbook常用的YMAL格式文件名称以 .yml结尾 1、文件的第一行应该以 --- (三个连字符)开始表明YMAL文件的开始。 2、在同一行中#之后的内容表示注释类似于shellpython和ruby。 3、YMAL中的列表元素以”-”开头然后紧跟着一个空格后面为元素内容。 4、同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理。 5、play中hostsvariablesrolestasks等对象的表示方法都是键值中间以:分隔表示:后面还要增加一个空格。 playbook由三个部分组成 host部分使用host指示使用哪个主机或主机组来运行下面的tasks remote_user指定远程主机中的哪个用户来登录远端系统在远端系统执行tasks的用户 tasks指定远端主机将要执行的一系列动作tasks的核心为ansible的模块 playbook的核心元素 hosts主机组 tasks任务列表 variables变量设置方式有四种 Templates包含了模板语法的文本文件 Handlers由特点条件触发的任务 [rootserver ansible]# vim nginx.yml
---
- hosts: webremote_user: roottasks:- name: install nginxyum: namenginx statepresent- name: copy nginx.confcopy: src/tmp/nginx.conf dest/etc/nginx/nginx.conf backupyesnotify: reload #当nginx.conf发生改变时通知给相应的handlerstags: reloadnginx #打标签- name: start nginx serviceservice: namenginx statestartedtags: startnginx #打标签handlers: #注意前面没有-是两个空格- name: reloadservice: namenginx staterestarted #为了在进程中能看出来 运行前的三部曲 检查错误ansible-playbook nginx.yml --syntax-check 列出所有任务ansible-playbook nginx.yml --list-task 列出在那些机器执行ansible-playbook nginx.yml --list-hosts 运行ansible-playbook nginx.yml variables部分vars为调用定义变量
1.facts可直接调用
setup模块就是通过facts组件来实现的用setup模块获取直接放入剧本中调用即可 2.用户自定义变量 vars - var1 cc1 - var2 cc2 1.如果未在剧本中定义变量可以使用 ansible-playbook nginx.yml -e rpmnamekeepalived 2.修改剧本定义 模板 templates
模板支持 字符串使用单引号或双引号 数字整数浮点数 列表[item1, item2, ...] 元组(item1, item2, ...) 字典{key1:value1, key2:value2, ...} 布尔型true/false 算术运算 , -, *, /, //, %, ** 比较操作 , !, , , , 逻辑运算 and, or, not 修改剧本 修改剧本来定义变量
此处的rpmname代表的调用的文件名称为rpmname下面的nginxport为此文件中的变量模块。copy模块也需要修改为template模块。 字典 - name: install some packages yum: name{{ item }} statepresent with_items: - nginx - memcached - php-fpm 传入多个参数 - name: add some groups group: name{{ item }} statepresent with_items: - group11 - group12 - group13 - name: add some users user: name{{ item.name }} group{{ item.group }} statepresent with_items: - { name: user11, group: group11 } - { name: user12, group: group12 } - { name: user13, group: group13 } 相当于一个一个传参给定义的相应接收的位置