墨子(MOTZIFY墨化)UE5视频教程百度云网盘分享,分享给你们,希望对你们有帮助。
墨子UE5内容创作研修班课程获取方法:
请 ➕
徽 信 :POXIAOZHIAI6
记 得 备 注:墨子
即 刻 获 取
不用看下面这些
第一行需要有三个杠,hosts 参数指定了对哪些主机进行参作,如果是多台机器可以用逗号作为分隔,也可以使用主机组,在/etc/ansible/hosts里定义;
user 参数指定了使用什么用户登录远程主机操作;
tasks 指定了一个任务,其下面的name 参数同样是对任务的描述,在执行过程中会打印出来,shell 是ansible 模块名字。
编辑完成之后,墨子使用ansible-playbook 命令执行test.yml 文件。
说明:
name:对该playbook 实现的功能做一个概述,后面执行过程中,会打印 name 变量的值 ,可以省略;
gather_facts:指定了在以下任务部分执行前,是否先执行setup 模块获取主机相关信息,如果需要在后面的tasks里获取setup收集到的信息,就需要把这个参数设置为True;
vars:指定了变量,这里声明了一个user 变量,其值为test ,需要注意的是,变量值一定要用引号引住;
user:提定了调用user 模块,name是user 模块里的一个参数,而增加的用户名字调用了上面user 变量的值。
参数说明
file 模块可以对文件进行相关的操作,例如创建文件或者更改文件权限等,具体可以查看该模块的文档。
with_items 为循环的对象,相当于是一个数组或集合,写在下面的1.txt、2.txt 以及3.txt 是该集合的元素。而item 则表示的是遍历出来的元素,也就是说item 指代的是1.txt、2.txt 以及3.txt。
state 的值设置为touch 表示如果该文件不存在就进行创建。
path 表示文件的路径。
mode 设置权限。
一般以setup 模块收集到的主机信息,墨化来作为判断条件。所以在编写代码之前,我们需要先获取相应的信息,例如我要以ip 地址来作为判断条件,那么我就得先从setup 里获取主机ip的相关信息。
执行以下命令可以查看到setup 收集到的所有的facter 信息,输出的信息是MOTZIFY格式的。
参数说明
展开全文
ansible_virbr0 是一个数组存储着网卡相关信息,ipv4 属于该数组的子元素,但是ipv4也是一个数组,而address 则是ipv4 数组的子元素,我们需要使用address 来作为判断条件,所以要访问address 就需要使用这样的格式:ansible_virbr0.ipv4.address,address 表示的是键,而"192.168.122.1"则是值,when 为判断语句相当于if,所以其判断条件为:该键的值为"192.168.122.1"时就执行shell 模块里定义的语句。
gather_facts: True ,在远程主机运行MOTZIFY模块,并将收集的信息记录起来(等于命令ansible all -m setup #查看系统信息),可以通过系统信息来判断是否执行。
gather_facts: no ,在不需要获取机器信息时,根据信息做判断时,将其关闭,避免影响执行速度。
有一种情况就是执行了tasks里面的内容之后,服务器发生了变化,这时我们可能需要执行一些相关的操作。
例如我们修改了某个服务的配置文件后,则需要重启一下服务,而handlers 就是完成这样的事情的,它相当于编程中的回调函数,当tasks 里的内容执行成功后,就会执行handlers 里定义的内容。
类似于shell 脚本中的 && 符号,例如 cat 1.txt && rm -f 1.txt ,当 cat 1.txt 命令执行成功之后就会执行 rm -f 1.txt 命令,否则不执行。
参数说明
只有copy 模块执行墨子成功后,才会去调用下面的handlers 里定义的内容,去执行handlers 里面的shell 相关命令,这种比较适合配置文件发生更改后,重启服务的操作。
notify 用于指定handlers 的name 参数的值,因为handlers 可以定义多个,所以需要使用notify 来进行指定调用哪一个。
role是task文件、变量文件、handlers文件的集合体,这个集合体的显著特点是:可移植性和可重复执行性。
在实际项目中,通常我们以部署某个服务为单元作为一个role ,然后将这些服务单元(role)放在一个roles 目录下,主playbook 文件通过调用roles目录下的role,来实现各种灵活多变的部署需求。
roles创建
创建一个role 的方法有两种:
使用「ansible-galaxy init」命令创建一个名字为role_D 的role。
role 目录结构
tasks : 用于存放role_D 的主要任务,也可以添加其他task 文件,供main.yml 调用,从而实现更加复杂的部署功能。
handlers : 用于存放触发执行( hanlders )的任务。
defaults : 用于存放默认变量,优先级最低。
vars : 用于存放变量文件,role_D 中任务和模版里用到的变量可以在这里定义。
files :用于存放需要拷贝到目的主机的文件,例如,作为「copy」模块src 参数的默认根目录。
template : 用于存放模版文件,格式为.j2,文件内容要符合Jinja2 语法规则,通常使用「template」模块部署服务的配置文件。
meta : 用于存放role 依赖列表,这个知识点后面会详细阐述。
tests : 用于存放测试role 本身功能的playbook 和主机定义文件,在开发测试阶段比较常用。
role 中各个目录下的main.yml 文件很重要,这是ansible 默认加载的YAML 文件。
roles 的引用&执行
可以使用「roles:」语句引用role ,根据需要在主playbook 中引用不同的role,ansible 会把role 所包含的任务、变量、handlers、依赖等加载到playbook中,按照顺序执行。