zoukankan      html  css  js  c++  java
  • playbook变量(五)

    一、playbook变量
    变量名:字母数字和下划线

    二、变量来源

    1.ansible 主机 -m setup|less所有主机都可以调用

    #过滤-a 'filter=*address*'

    1.1例子创建一个hostname 的log文件

    ansible date -m setup -a 'filter=ansible_fqdn*'
    
    [root@linux-node1 ansible]# cat var.yaml 
    ---
    - hosts: date
      remote_user: root
    
      tasks:
        - name: create log file
          file: name=/data/{{ ansible_fqdn }}.log state=touch mode=600 owner=zjy
    

      2. 在/etc/ansible/hosts

     2.1 在host配置文件定义http_port变量

    [root@linux-node1 ansible]# cat hostname.yaml 
    ---
    - hosts: date
      remote_user: root
    
      tasks:
        - name: set hostname
          hostname: name=www.{{http_port}}.123
    

    2.2为组设置固定格式

    [root@linux-node1 ansible]# cat hostname1.yaml 
    ---
    - hosts: date
      remote_user: root
    
      tasks:
        - name: set hostname
          hostname: name={{nodename}}.{{http_port}}.{{dominname}}
    

    3、通过命令行指定变量、优先级最高

    [root@linux-node1 ansible]# cat app.yaml 
    ---
    - hosts: date
      remote_user: root
    
      tasks:
        - name: install package
          yum: name={{ pkname }}
        - name: start service
          service: name={{ pkname }} state=started enabled=yes
    

    ansible-playbook -e 'pkname=vsftpd'  app.yaml

     

     3.1定义多个变量

    [root@linux-node1 ansible]# cat app1.yaml 
    ---
    - hosts: date
      remote_user: root
    
      tasks:
        - name: install package
          yum: name={{ pkname1 }}
        - name: install package
          yum: name={{ pkname2 }}
    

    4、 在playbook中定义
    vars:
    - var1: value1
    - var2: value2

    [root@linux-node1 ansible]# cat app2.yaml
    ---
    - hosts: date
      remote_user: root
      vars:
        - pkname1: httpd
        - pkname2: vsftpd
    
      tasks:
        - name: install package
          yum: name={{ pkname1 }}
        - name: install package
          yum: name={{ pkname2 }}
    

     5、定义变量文件

    [root@linux-node1 ansible]# cat vars.yaml 
    var1: httpd
    var2: nginx
    
    #playbook
    [root@linux-node1 ansible]# cat testvar.yaml 
    ---
    - hosts: date
      remote_user: root
      vars_files:
        - vars.yaml
    
      tasks:
        - name: install package
          yum: name={{ var1 }}
        - name: create file
          file: name=/data/{{ var2 }}.log state=touch
    

    ansible-playbook  testvar.yaml

  • 相关阅读:
    [Java]内部类
    [Java]项目经验之谈
    [IDE]Netbeans
    [HTML5游戏开发]开发者如何真正的面向HTML5平台开发游戏?
    [HTML5游戏开发]两款很棒的 HTML5 游戏开发工具
    [HTML5游戏开发]HTML5游戏让你惊喜吗?
    How To Design A Mobile Game With HTML5
    [WebSimpleDB]HTML5之IndexedDB使用详解
    [HTML5]WAI-ARIA介绍
    [MiniPro]Android GPS-从上到下整个框架剖析与案例解说
  • 原文地址:https://www.cnblogs.com/zhaojingyu/p/12115861.html
Copyright © 2011-2022 走看看