当前位置: 首页 > wzjs >正文

建站宝盒nicebox手机版互联网运营培训课程

建站宝盒nicebox手机版,互联网运营培训课程,白城学习做网站的学校,南京电商网站建设公司目录 Ansible Facts是什么 查看Facts变量 剧本中使用facts变量 Ansible中的自定义变量 Ansible变量测试 Ansible Facts是什么 facts组件是Ansible用于采集被管理机器设备信息的一个功能用于采集的被控节点的设备信息主要包含IP地址、操作系统、以太网设备、mac 地址、时间/…

目录

Ansible Facts是什么

查看Facts变量

剧本中使用facts变量

Ansible中的自定义变量

Ansible变量测试


  • Ansible Facts是什么

    • facts组件是Ansible用于采集被管理机器设备信息的一个功能
    • 用于采集的被控节点的设备信息
    • 主要包含IP地址、操作系统、以太网设备、mac 地址、时间/日期相关数据,硬件信息等
    • facts变量可以理解为Ansible中的预定义变量
    • facts对我们是很有帮助的,省去了我们好多工作,大大提高了工作效率
  • 查看Facts变量

    • 使用setup模块,用于获取所有facts信息
## 常用参数filter:用于过滤指定信息## 样例
# 通过setup模块查看所有facts信息
[root@pubserver ~]# cd /root/ansible/
[root@pubserver ansible]# ansible webservers -m setup# facts变量是一个大的由{}构成的键值对字典
# 在{}中,有很多层级的嵌套。可以通过参数过滤出第一个层级的内容
[root@pubserver ansible]# ansible webservers -m setup -a "filter=ansible_all_ipv4_addresses"
[root@pubserver ansible]# ansible webservers -m setup -a "filter=ansible_bios_version"
[root@pubserver ansible]# ansible webservers -m setup -a "filter=ansible_memtotal_mb"
[root@pubserver ansible]# ansible webservers -m setup -a "filter=ansible_hostname"
[root@pubserver ansible]# ansible webservers -m setup -a "filter=ansible_mem*"
  • 剧本中使用facts变量

    • 剧本中可以使用debug模块打印变量信息
    • 剧本中默认有Gathering Facts的任务,收集到Facts信息后可以使用该模块打印
    • 剧本中调用变量格式:{{ 变量名 }}
## 常用参数msg:打印变量值,格式为:{{ 变量名 }}var:打印变量值,格式为:变量名## 样例
# 命令行
[root@pubserver ansible]# ansible webservers -m debug   #默认返回值为"Hello World!"# 剧本
[root@pubserver ansible]# vim debug1.yml 
---
- name: test debughosts: webserverstasks:- name: test debug msgdebug:msg: "hostname: {{ ansible_hostname }}; mem: {{ ansible_memtotal_mb }}"
[root@pubserver ansible]# ansible-playbook debug1.yml #扩展用法
[root@pubserver ansible]# vim debug2.yml 
---
- name: test debughosts: webserverstasks:- name: test debug vardebug:var: ansible_hostname, ansible_bios_version
[root@pubserver ansible]# ansible-playbook debug2.yml 

Ansible中的自定义变量

通过变量的使用可以让剧本更加灵活,多次运行剧本的时候只需要调整变量名即可

Ansible支持十几种变量定义方式

Ansible变量定义的位置,下列变量优先级从低到高

  • role defaults :roles defaults目录下的变量
  • inventory vars:inventory文件中定义的变量
  • inventory group_vars:inventory文件组的变量
  • inventory host_vars:inventory文件主机的变量
  • playbook group_vars:剧本中组的变量
  • playbook host_vars:剧本中主机的变量
  • host facts:事实变量
  • play vars:vars定义的变量
  • play vars_prompt:vars_prompt定义的变量
  • play vars_files:vars_files导入的变量
  • registered vars:注册变量
  • role and include vars:roles中单独定义的及导入的变量
  • block vars (only for tasks in block):block中定义的变量
  • task vars (only for the task):任务中定义的变量
  • extra vars (always win precedence):命令行指定的变量

Ansible变量测试

  • 主机清单变量
## 在inventory文件中定义变量# 主机变量
[root@pubserver ansible]# vim inventory 
[webservers]
web[1:2][dbs]
db1 username="liubei"   #定义属于db1主机的变量[cluster:children]
webservers
dbs
[root@pubserver ansible]# vim var1.yml
---
- name: create user with host varshosts: db1tasks:- name: test host varsuser:name: "{{ username }}"state: present
[root@pubserver ansible]# ansible-playbook var1.yml     #运行剧本
[root@pubserver ansible]# ansible db1 -a "id liubei"    #测试结果
db1 | CHANGED | rc=0 >>
uid=1000(liubei) gid=1000(liubei) groups=1000(liubei)
[root@pubserver ansible]# # 组变量
[root@pubserver ansible]# vim inventory 
[webservers]
web[1:2][dbs]
db1 username="liubei"[cluster:children]
webservers
dbs[webservers:vars]   #定义属于组的变量,:vars是固定格式
username="guanyu"
[root@pubserver ansible]# vim var2.yml
---
- name: create user with group varshosts: webserverstasks:- name: test group varsuser:name: "{{ username }}"state: present
[root@pubserver ansible]# ansible-playbook var2.yml             #运行剧本
[root@pubserver ansible]# ansible webservers -a "id guanyu"     #验证结果
web1 | CHANGED | rc=0 >>
uid=1041(guanyu) gid=1041(guanyu) groups=1041(guanyu)
web2 | CHANGED | rc=0 >>
uid=1041(guanyu) gid=1041(guanyu) groups=1041(guanyu)
  • 剧本变量
## 在Playbook中定义变量# 变量矩阵
[root@pubserver ansible]# vim var3.yml
---
- name: create user with play varshosts: webserversvars:                     #剧本中定义变量username: "zhangfei"    #定义变量password: "123456"      #定义变量,数字作为密码必须用引号,表示字符串tasks:- name: test play varsuser:name: "{{ username }}"password: "{{ password|password_hash('sha512')}}"state: present
[root@pubserver ansible]# ansible-playbook var3.yml # 变量文件
[root@pubserver ansible]# vim fvars.yml
---
username: "lvbu"
password: "654321"
[root@pubserver ansible]# vim var4.yml
---
- name: create user with vars fileshosts: webserversvars_files: fvars.yml     #调用定义变量的文件tasks:- name: test vars fileuser:name: "{{ username }}"  password: "{{ password | password_hash('sha512')}}"state: present
[root@pubserver ansible]# ansible-playbook var4.yml         #运行剧本   
[root@pubserver ansible]# ansible webservers -a "id lvbu"   #验证结果
web2 | CHANGED | rc=0 >>
uid=1043(lvbu) gid=1043(lvbu) groups=1043(lvbu)
web1 | CHANGED | rc=0 >>
uid=1043(lvbu) gid=1043(lvbu) groups=1043(lvbu)
  • Facts变量
## 调用Facts变量# 一定要开启Facts信息收集,gather_facts: yes
[root@pubserver ansible]# vim var5.yml
---
- name: copy file with factshosts: webserverstasks:- name: use factscopy:content: "hostname: {{ ansible_hostname }}\nbios_version: {{ ansible_bios_version }}"dest: /tmp/facts.txt
[root@pubserver ansible]# ansible-playbook var5.yml 
[root@pubserver ansible]# ansible webservers -a "cat /tmp/facts.txt"
web2 | CHANGED | rc=0 >>
hostname: web2
bios_version: rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org
web1 | CHANGED | rc=0 >>
hostname: web1
bios_version: rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 

http://www.dtcms.com/wzjs/161716.html

相关文章:

  • 知名的电子商务网站百度收录网站链接入口
  • 上海设计网站方法北京百度网讯科技有限公司
  • wordpress 一小时建站搜索引擎营销就是seo
  • 商贸公司网站建设合肥网站制作
  • web前端工程师简历seo关键词是什么
  • 中国建设银行新闻网站2345网址导航官网
  • 公司做网站的步骤营销模式和营销策略
  • 中山网站建设最好的公司怎么进行推广
  • 建筑安全类网站百度搜索服务
  • 网站换域名能换不资阳地seo
  • 关注济南网站建设石家庄网站建设公司
  • 郑州免费做网站的东莞新闻最新消息今天
  • 爬墙专用加速器我是seo关键词
  • 武进网站建设好么搜索引擎的优化方法
  • 鹰潭网站建设公司关键词优化软件哪家好
  • 武汉网站制作好seo主管招聘
  • 网站建设 的公制作网站费用
  • 深圳做购物网站网络推广员
  • 世界杯竞猜网站开发百度北京总部电话
  • 地名公共服务网站建设营销咨询
  • 商务网站开发流程新手怎么做销售
  • 地方汽车网站模板购买搜索引擎营销概念
  • 个人设计师为什么做网站自己建网站流程
  • seo快速排名软件网站企业建站流程
  • 网站设计时尚培训课程安排
  • 网站建设项目规划书案例在线视频用什么网址
  • 太原网站制作案例镇江交叉口优化
  • 没网站怎么做二维码扫描连接百度网站客服电话
  • 网站安全证书过期怎么办网站推广的概念
  • 网站开发需要学习什么十大场景营销案例