首页 > 社交 > 科普中国

ansible

常驻编辑 科普中国 2022-06-12 变量   都会   赋值   剧本   声明   资产   过程   情况   服务器   信息
默认会查询每台服务器的facts值sVV拜客生活常识网

---
- name: a play example
  hosts: all
  remote_user: root
  tasks:
    - name: install nginx package
      yum: name=nginx state=present
    - name: copy nginx.conf to remote server
      copy: src="/a2020/img/data-img.jpg" data-src=nginx.conf dest=/etc/nginx/nginx.conf
    - name: start nginx server
      service:
        name: nginx
        enabled: true
        state: started
...
[root@bogon ~]# ansible-playbook facts.yaml

PLAY [a play example] *****************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] ****************************************************************************************************************************************************************************************************************
ok: [192.168.216.134]
ok: [192.168.216.132]

TASK [install nginx package] **********************************************************************************************************************************************************************************************************
ok: [192.168.216.132]

若在整个PlayBook 的执行过程中,完全未使用过 Facts 变量,此时我们可以将其关闭,以加快PlayBook的执行速度sVV拜客生活常识网


[root@bogon ~]# cat factsout.yaml
---
- name: a play example
  hosts: webservers
  # 关闭 facts 变量收集功能
  gather_facts: no
  remote_user: root
  tasks:
    - name: install nginx package
      yum: name=nginx state=present
    - name: copy nginx.conf to remote server
      copy: src="/a2020/img/data-img.jpg" data-src=nginx.conf dest=/etc/nginx/nginx.conf
    - name: start nginx server
      service:
        name: nginx
        enabled: true
        state: started
...

[root@bogon ~]# ansible-playbook factsout.yaml
[WARNING]: Could not match supplied host pattern, ignoring: webservers

PLAY [a play example] *****************************************************************************************************************************************************************************************************************
skipping: no hosts matched

PLAY RECAP ****************************************************************************************************************************************************************************************************************************

注册变量
通常用于保存一个task任务的执行结果,便于debug使用
或者将此次的task任务结果作为下一task任务的条件
注册变量在playbook中通过register关键字去实现
sVV拜客生活常识网


[root@bogon ~]# cat  zuce.yaml
---
- name: install a package and print the result
  hosts: webservers
  remote_user: root
  tasks:
    - name: install nginx package
      yum: name=nginx state=present
      register: install_result  #变量名称
    - name: print result
      debug: var=install_result   #输出结果
...

[root@bogon ~]# ansible-playbook zuce.yaml
[WARNING]: Could not match supplied host pattern, ignoring: webservers

PLAY [install a package and print the result] *****************************************************************************************************************************************************************************************
skipping: no hosts matched

PLAY RECAP ****************************************************************************************************************************************************************************************************************************

变量的优先权
变量这一篇加上,上一篇变量
一大堆
有全局变量,剧本,资产,Facts变量,注册变量
其中facts变量不需要人为声明赋值,注册变量只需要register去声明,而不需要赋值
全局变量,剧本及资产则完全需要人为的声明赋值
*当一个变量同时在全局变量、剧本变量和资产变量中定义时,优先级最高的是全局变量;其次是剧本变量;最后才是资产变量。
sVV拜客生活常识网

相关阅读:

  • ts类型断言(二)
  • 山西大学苏晓龙教授研究组在远程制备非高斯态方面取得
  • 基于深度学习Autoencoder的信用卡欺诈异常检测,效果非
  • 双缝实验更恐怖,贝尔不等式检测,世界真实存在性迎来终极
  • 时间变量理论:运动速度越快,其时间就过得越慢
  • 万丘林教授提出:宇宙或许是个巨大的神经网络,难道它真是
  • Matlab基础入门手册(第六章
  • 全局变量和局部变量在内存中的区别
  • pytest接口自动化测试框架
  • 烂尾楼业主停贷,是房地产市场风险处置中最大的变量
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。