当前位置: 首页> 文旅> 艺术 > 建筑模板尺寸_冷水江网站定制_百度网盘网页版_友情链接在线观看

建筑模板尺寸_冷水江网站定制_百度网盘网页版_友情链接在线观看

时间:2025/7/9 5:52:31来源:https://blog.csdn.net/sujiade2/article/details/147099078 浏览次数:2次
建筑模板尺寸_冷水江网站定制_百度网盘网页版_友情链接在线观看

复盘内容:链接指北

查看ansible命令文档

ansible-doc -s systemd

一、剧本

何为剧本:

playbook 文件,用于长久保存并且实现批量管理,维护,部署的文件. 类似于脚本存放命令和变量

剧本yaml格式,yaml格式的文件:空格,冒号.

剧本未来我们批量管理,运维必会的内容.

ans剧本ans ad-hoc
共同点批量管理,使用模块批量管理,使用模块
区别重复调用不是很方便,不容易重复
应用建议(应用场景)部署服务,多个步骤的任务测试模块,临时性任务

案例:脚本书写格式

在这里插入图片描述

- hosts: alltasks:- name: 01 打开冰箱门shell: echo 1 >>/tmp/bingxiang.log- name: 02 把大象放入冰箱shell: echo 2 >>/tmp/bingxiang.log- name: 03 关上冰箱的门shell: echo 3 >>/tmp/bingxiang.log
#书写剧本 注意以.yml或.yamt结尾 01.show.yml
#-i 指定主机清单文件,如果不写默认调用/etc/ansible/hosts
ansible-playbook -i hosts 01.show.yml

在这里插入图片描述

执行的时候有奶牛:

可以删除软件或修改ansible.cfg配置进行关闭 #nocows =1去掉注释即可

书写Ans playbook注意事项:

  • 同一个层级的内容对齐的0
  • 不同层级的通过2个空格对齐
  • 不能使用tab键

二、剧本案例

1、案例01: 创建目录并分发文件

创建目录/server/files/etc/hosts文件并且发送过去/server/files

- hosts: alltasks:- name: 01 创建目录/server/filesfile: path=/server/files state=directory- name: 02 分发文件copy: src=/etc/hosts dest=/server/files

2、案例02:分发软件包,安装软件包,启动服务

zabbix-agent软件包(下载)—》 安装软件包—》配置(略)—》启动开机自启动

- hosts: alltakes: - name: 01 软件包下载get_url: url: https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent-6.0.13-release1.el7.x86_64.rpmdest: /tmp/validate_certs: no- name: 02 安装软件包yum:name:/tmp/zabbix-agent-6.0.13-release1.el7.x86_64.rpmstate=insatlled- name: 03 配置 debug:msg: "进行配置zabbix-agent"- name: 04 启动systemd:name: zabbix-agentenabled: yesstate: started
ansible all -m shell -a 'ps -ef | grep zabbix'

不能使用-m command。在 Ansible 的命令模块中,你需要以单个字符串的形式指定要执行的命令,而不能使用管道符号 |

3、案例03:nfs服务

  • nfs服务端:在backup上部署nfs服务,共享/backup-nfs目录,all_squash,匿名用户:nfsnobody
  • nfs客户端:web挂载 /ans-upload目录挂载nfs服务端共亭的/backup-nfs(永久挂载)

写剧本必备-列出流程

服务端流程:

  • 部署nfs-utils,rpcbind
  • 修改配置文件
  • 创建共享目录并改所有者
  • 启动服务rpcbind,nfs(注意顺序)

客户端流程:

  • 安装nfs-utils2.
  • 挂载与永久挂载
- hosts: nfstasks: - name: 01 部署nfs-utils,rpcbindyum: name: nfs-utilsstate: installed- name: 02 修改配置文件lineinfile:path: /etc/exportsline: "/backup-nfs/ 10.0.0.0/24(rw)"create: true- name: 03 创建共享目录并且修改权限file: path: /backup-nfs/state: directoryowner: nfsnobodygroup: nfsnobody- name: 04-1 依次启动服务rpcsystemd: name: rpcbindenabled: yesstate: started- name: 04-2 依次启动服务nfssystemd: name: nfsenabled: yesstate: started
- hosts: webtasks: - name: 01 部署nfs-utils,rpcbindyum: name: nfs-utilsstate: installed- name: 02 永久挂载mount:src: 10.0.0.31:/backup-nfs/path: /data/fstype: nfsstate: mounted

三、Ansible中的变量

变量无处不在,在ans中大部分地方都可以定义变量.

比较常用的创建变量的地方:剧本中,类似于功能,共用的变量文件.

可以定义变量的地方说明
在剧本文件中定义比较常用。仅仅限于当前的play使用,
register变量(注册变量)ip= hostname -I,实现脚本中反引号的功能,可以获取命令结果
变量文件,根据主机清单分分组进行定义变量如果多个剧本,使用相同的变量,大型的剧本roles
inventory主机清单中定义变量未来可以用于批量修改主机使用,其他很少用了
命令号中几乎不用
facts变量一般用于获取主机基本信息:ip,主机名,系统(centos/ubuntu)如果不需要可以关闭,用于加速剧本的执行

3.1、剧本中的变量

在剧本play中定义变量应用:

  1. 仅仅在当前play生效.
  2. 一般用来存放路径,用户名,ip地址,类似于之前使用的脚本.
  3. 注意引号使用.

使用变量的时候如果变量是某个选项的开头,则变量引用的时候需要加上双引号.

#dir就是变量,变量的内容:右边的内容- hosts: allvars:dir: /oldboy/lidao/upload/tasks:- name: mkdirfile:path: "{{ dir }}"state: directory

面试常问:使用变量的时候如果变量是某个选项的开头,则变量引用的时候需要加上双引号.

3.2、共用变量-变量文件

[root@m01 /server/scripts/playbook]# cat 05.vars.yml
- hosts: allvars_files: ./vars.ymltasks:- name: filefile:path: "{{ dir  }}/{{ user }}-{{ file }}"state: touch

3.3、共用变量-根据主机组使用变量

group_vars根据主机清单的分组去匹配

group_vars/lb/vars.yml #存放lb组的变量web/vars.yml #存放web组的变量data/vars.yml #存放xxx组的变量all/vars.yml #所有主机共用的变量
未来一般使用all分组即可,把所有变量存放在一起,供剧本使用
group_vars/lb/均为目录,vars.yml为文件
[root@m01 ~]# cat vars.ymluser: www
nfs_dir: /nfs_backup
web_mount_dir: /web_nfs
nfs_server: 172.16.1.41
rsync_pass: 1

3.4、facts变量

运行剧本的时候ans会收集每个主机的本信息,这些信息形成的变量叫做facts变量,

facts变量setup模块获取

#获取web主机上的setup模块变量
ansible -i /etc/ansible/hosts web -m setup
常用fact变量
ansible_hostname  #主机名
ansible_memtotal_mb #内存大小(总计) 单位mb
ansible_processor_vcpus     #cpu数量
ansible_default_ipv4.address  #默认的网卡ip eth0
ansible_distribution      #系统发行版本名字
ansible_processor_cores   #cpu核心数

3.5、register变量注册变量

本质上就是用来实现脚本中的反引号功能

用户通过命令获取的内容都存放到Register变量

- hosts: alltasks:- name: get dateshell: date +%Fregister: result- name: print result 变量内容debug:msg: |"register变量的全部内容是:{{result.stderr }}""register变量的精确的内容是:“{{result.stdout}}”

register注册变量:
变量.stdout 获取输出即可.

json形式数据.
key: value
键: 值
变量: 内容
date +%F
stdout部分是我们想要的内容.
register变量result.
result.stdout #std standard output 标准输出.

符号说明
msg:中的|表示下面的内容是多行. |也可以用于其他模块中.

关键字:建筑模板尺寸_冷水江网站定制_百度网盘网页版_友情链接在线观看

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: