张家港网站设计建设,怎么制作u盘启动盘,展示型网站php,网站的建站风格#xff08;一#xff09;playbook的组成部分 tasks 任务#xff0c;包含要在主机上执行的操作#xff0c;使用模块定义这些操作#xff0c;每一个任务都是一个模块的调用 variables 变量#xff0c;存储和传递数据#xff08;和shell脚本中的变量是一个意思#xf…一playbook的组成部分 tasks 任务包含要在主机上执行的操作使用模块定义这些操作每一个任务都是一个模块的调用 variables 变量存储和传递数据和shell脚本中的变量是一个意思变量可以自定义可以在playbook当中定义为全局变量也可以外部传参 templates 模版用于生成配置文件模版是包含占位符的文件占位符由ansible在执行时转换为变量值 handlers 处理器当需要有变更的时候可以执行触发器 roles 角色是一种组织和封装playbook的允许把相关的任务、变量、模版和处理器组织成一个可复用的单元
二tasks模版
1、实例模版1 1检查yml文件的语法是否正确ansible-playbook test.yaml --syntax-check 2查看playbook运行会生成几个tasksansible-playbook test.yaml --list-task 3检查生效的目标主机在哪台主机上生效ansible-playbook test.yaml --list-hosts 4运行playbookansible-playbook test.yaml 5测试 6指定剧本演出指定步骤开始安装ansible-playbook test.yaml --start-at-taskinstall httpd 7切换用户 ①运行命令ansible-playbook test.yaml -K 8指定用户执行ansible-playbook test.yaml -u root -k 2、实例模版2 字典方式key-value {{ hostvars[inventory_hostname][ansible_default_ipv4][address] }}表示获取目标主机的IP地址。 包含所有主机变量的字典 inventory_hostname 目标的主机名 ansible_default_ipv4 获取目标主机名 ansible_default_ipv4.address 获取目标主机的IP地址 1外部传参ansible-playbook test1.yml -e usernamehaide1 groupnameyyy2 3、playbook之条件判断
1when是一个比较常见的应用场景实现满足条件即执行不满足条件即跳过任务
①when满足条件执行不满足不执行 2取反 ①inventory_hostname代替ansible_default_ipv4.address 3条件1IP地址20就安装httpdIP地址是30就安装nginx 4、playbook之循环迭代 ansible的循环格式 with_items 循环遍历最常用 with_together 列表组循环组合输出列表对应的列以数据结合的方式循环 with_list 列表分组循环 with_lnested 相当于双重循环第一层定义了循环的次数第二层表示第一层中的每个元素会循环几次
1with_items循环遍历
①第一种 ②第二种 ③第三种区分列表 ④在/opt目录下创建文件1、2、3、4、a、b、c、d 2with_together列表组循环组合输出 3with-nested列表里面的元素定义了循环的次数第二层列表相当于内循环 5、实例3
1创建文件、目录 2创建用户名test1 test2组名分别是dn1 dn2一一对应 三playbook之template模块
1、template模版jinja模版架构通过模版可以实现向模版文件传参Python转义把占位符参数转到配置文件中去
①jinja生产一个目标文本文件传递变量到需要的配置文件当中一般用于web开发
2、安装http配置文件传参
1安装httpd服务 2修改文件http.conf.j2
①http.conf.j2中配置的是占位符声明变量 3修改文件/etc/ansible/hosts
①/etc/ansible/hosts中配置了主机的占位符名称和j2文件中的占位符一致定义参数占位符的参数声明好 4配置playbooktemplate模版来把参数传给目标主机的配置文件 5测试查看 3、安装nginx、配置文件传参 1yum -y install nginx 四tags模块
1、tags标签模块可以在playbook当中为任务设定标签tags在运行playbook时可以通过指定任务标签来实现只运行设定的标签任务
2、任务标签的种类所有任务的默认标签就是always always 不管是否指定了运行标签任务都会执行 never 即使运行了指定标签该任务也不会执行 debug 调式任务 setup 收集主机信息 自定义 自定义标签 per_tasks 允许指定标签之前的任务 post_tasks 允许指定标签之后的任务
3、实例 1ansible-playbook test4.yml --tagsdebug 2ansible-playbook test4.yml --tagsnever 3自定义 4、在目标主机上touch文件/opt/hyde.txt always在目标主机copy文件/opt/hyde1.txt never第一次允许playbook不指定标签查看第二次指定标签为never查看 五roles模块
1、角色模块在ansible中roles模块是一个层次化、结构化的组织playbook使用了roles角色可以根据层次结构自动装载变量文件、task、以及handlers等等
2、roles分别把变量、文件、任务、模块以及处理器放在单独的目录中使用roles模块来一键调用这些文件
3、roles的结构 roles——web——总目录角色 files 存放copy和script模块调用的文件 templates 存放j2的模版文件 tasks 包含任务的目录子文件main.yml角色运行的任务 handlers 包含处理器的目录子文件main.yml vars 存放变量的目录子文件main.yml defaults 包含默认变量的目录子文件main.yml meta 包含元信息的目录子文件main.yml可以不写 site.yml 在role目录下用来调用所有的配置文件
4、实例 三个服务 http mysql php
1创建目录、文件
①mkdir files templates tasks handlers vars defaults meta ②touch {defaults,vars,tasks,meta,handlers}/main.yml 2声明任务和变量
①httpd ②mysql ③php 3编写site.yml调用所有的配置文件 4检查