外国有没有中国代做数学作业的网站,找建站公司做网站注意事项,网站续费收多少合适,网上商城可行性分析报告1、playbook的组成部分
#xff08;1#xff09;task任务#xff1a;在目标主机上执行的操作#xff0c;使用模块定义这些操作#xff0c;每个任务都是一个模块的调用
#xff08;2#xff09;variables变量#xff1a;存储和传递数据#xff08;变量可以自定义1task任务在目标主机上执行的操作使用模块定义这些操作每个任务都是一个模块的调用
2variables变量存储和传递数据变量可以自定义①在playbook中定义为全局变量②可以外部传参
3templates模板用于生成配置文件模板是包含占位符的文件。占位符由ansible在执行时转化为变量值
4handlers处理器有变更时可以执行触发器
5rolse角色组织和封装playbook允许把相关的任务、变量、模板以及处理器组织成一个可复用的单元
2、实例模板 ansible-playbook test1.yaml --syntax-check 检查yml文件的语法 ansible-playbook test1.yaml --list-task 查看任务 ansible-playbook test1.yaml --list-hosts 查看在哪台主机生效 ansible-playbook test1.yaml 运行ynl文件 ansible-playbook test1.yaml --start-at-taskinstall httpd 指定剧本演出
测试 1在远程主机切换用户很少用基本上都会给root权限
①用户yst执行此脚本但yst权限不够使用root用户权限 ②取消密钥对认证 ③声明密码和用户即便取消密钥对认证也要声明密码和用户 ④运行playbook剧本ansible-playbook test1.yaml -K
已在脚本中设置用有权限的用户时用大K 2指定用户但用户没权限执行此剧本很少用基本上都会给root权限
运行要指定有权限的用户并用小k
ansible-playbook test1.yaml -u root -k 3、声明和引用变量以及外部传参变量
1内部传参 vars: groupname: yst username: yyy 字典方式key-values -开头 表示列表 name: {{ username }} 引用变量username {{ hostvars[inventory_hostname][ansible_default_ipv4][address]}} 包含所有主机变量的字典 #获取目标主机的IP地址 hostvars 打印 inventory_hostname 目标主机的主机名 ansible_default_ipv4 获取目标主机名 [ansible_default_ipv4][address] 相当于filter过滤出ansible_default_ipv4中的IP地址
检验yml文件语法 运行yml文件 测试 2外部传参 ansible-playbook test2.yml -e usernamerrr groupnameymr 测试 4、条件判断
when一个比较常见的应用场景实现满足条件即执行不满足条件即跳过任务满足条件即执行不满足条件不执行 debug: msg: 位置判断 相当于echo用于脚本的调试在正式脚本中去除 实题hosts:all满足条件IP20,安装nginx满足条件IP30,安装httpd 测试 5、循环
ansible有多种循环格式
1with_items循环遍历最常用
①声明一个列表 ②声明多个列表把所有列表当成一个整体的列表来遍历 ③在一个目录下创建两个不同的文件 2with_list列表分组循环
①分组打印 ②在一个目录下创建两个不同的文件 3with_together列表组循环列表对应的列、数据结合的方式循环 4with_nested列表中元素定义了循环的次数第一层定义了循环的次数第二层列表相当于内循环表示第一层中的每个元素会循环几次 实题1基于循环创建文件、目录、用户组 实题2用户名test1 test2 组名分别是dn1 dn2 实题3yum一键安装tree sl nginx httpd vsftpd dhcp多个软件 测试 实题4在本机上创建123 456 789文件分别复制到目标主机的test1 test2 test3目录中 测试 6、templates模块传参模块
定义jinja模板架构通过模板可以实现向模板文件传参python转义把占位符参数传到配置文件中
jinja模板架构生成一个目标文本文件传递变量到需要的配置文件中用于web开发
实题1定义占位符传送httpd配置文件到目标主机
①修改ansible的配置文件定义占位符 ②复制配置文件必须以.j2结尾j2表示占位符 ③修改以.j2结尾的httpd配置文件
vim /opt/httpd.conf.j2 ④创建剧本vim http.yml ⑤运行剧本 ⑥验证配置文件是否传送目标主机 在httpd.conf.j2中 配置占位符声明的变量 在/etc/ansible/hosts中 配置主机的占位符名称和j2文件中的占位符一致定义参数声明占位符的参数 在剧本playbook中 用template模块把参数传给目标主机的配置文件
实题2定义占位符传送nginx配置文件到目标主机
①在ansible配置文件中定义占位符 ②复制nginx的配置文件以.j2结尾j2表示占位符 ③修改以.j2结尾的nginx配置文件 ④创建nginx剧本 ⑤运行剧本 ⑥验证配置文件是否传送到目标主机 结论配置文件传送成功
⑦测试 7、tags模块标签模块
1定义可以在playbook中为任务设定标签tags在运行playbook时可以通过指定任务标签实现只运行设定的标签任务
2任务标签的种类 always 无论是否运行了指定标签任务都会执行 never 即使运行了指定标签任务也不会执行很少用 debug 调试任务 setup 收集主机信息 自定义标签 per_tasks 运行指定标签之前的任务 post_tasks 运行指定标签之后的任务很少用
3格式
tags: - 标签种类
4运行剧本标签格式
ansible-playbook test.yml --tags”debug”
5实例 实题在目标主机创建文件touch /opt/guoqi.txt标签always
在目标主机复制文件/opt/wdf.txt标签never
第一次运行剧本不指定标签查看文件生成情况
第二次运行剧本指定标签为never查看文件生成情况 自定义标签 注always是默认模块无论是否定义always标签都会执行
8、roles模块角色模块
1定义ansible中的roles模块是一个层次化、结构化的组织。可以根据层次结构自动装载变量文件、tasks、handlers
2作用分别把变量、文件、任务、模块以及处理器放在单独的目录中使用roles模块一键调用这些文件
3结构 目录 作用 创建固定的文件名才能使用 webs 总目录。存放角色 site.yml用来调用所有的配置文件 files 存放copy和scripts模块调用的文件 / templates 存放j2的模板文件 / tasks 包含任务的目录。角色运行的任务 main.yml固定 handlers 包含处理器的目录 main.yml固定 vars 存放变量的目录 main.yml固定 defaults 包含默认变量的目录 main.yml固定 meta 包含元信息的目录 main.yml固定
创建roles远程安装httpd、mysql、php服务实验
1、创建roles目录 2、创建httpd角色 3、创建mysql角色 4、创建php角色 5、编写site.yml在总目录下【site.yml是总指挥调用这些角色】 6、运行roles 7、验证在目标主机上远程安装是否成功 结论远程安装http、mysql、php成功