zoukankan      html  css  js  c++  java
  • ansible系列3-pyYAML

       规则一:缩进

        yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。一定不能使用tab键

        注意:编写yaml文件,就忘记键盘有tab

        规则二:冒号

        CMD="echo"

        yaml:

        mykey:

        每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)

        规则三:短横线

        想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分

     

    例子:

    ### 剧本的开头,可以不写
    - hosts: all         <- 处理所有服务器,找到所有服务器;  -(空格)hosts:(空格)all
    tasks:             <- 剧本所要干的事情;                (空格)(空格)task:
    - command: echo hello oldboy linux.  
      (空格)(空格)空格)(空格)-(空格)模块名称:(空格)模块中对应的功能
    ansible all -m command -a "echo hello oldboy linux"     

    编写后检查方法:

    01:ansible-playbook --syntax-check 01.yml 

            --- 进行剧本配置信息语法检查

    02:ansible-playbook -C 01.yml             

               --- 模拟剧本执行(彩排)

    说明:ansible执行时,加1上-vvvv显示ansible详细执行过程,也可以定位异常原因!

    剧本编写内容扩展:剧本任务编写多个任务

    - hosts: all
      tasks:
        - name: restart-network
          cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'
        - name: sync time
          cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdate pool.ntp.com >/dev/null 2>&1"

    剧本编写内容扩展:剧本任务编写多个主机

    复制代码
    - hosts: 172.16.1.7
      tasks:
        - name: restart-network
          cron: name='restart network' minute=00 hour=00 job='/usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1'
        - name: sync time
          cron: name='sync time' minute=*/5 job="/usr/sbin/ntpdate pool.ntp.com >/dev/null 2>&1"
    - hosts: 172.16.1.31
      tasks:
        - name: show ip addr to file
          shell: echo $(hostname -i) >> /tmp/ip.txt

    例子:

    #cat test1.sh 
    #!/bin/bash
    if [ -z $1 ] || [ -z $2 ];then
       echo "Wrong,Please input two args"
       echo "Usage `basename $0` arguments arguments"
       exit 6
    fi
    mkdir -pv /usr/local/src/$1/$2
    #cat createdir.yml 
    ---
    - hosts: "{{ host }}"
      user: "{{ user }}"
      gather_facts: True
      tasks:
        - name: Create Dir in client server
          script: /etc/ansible/test1.sh data log
    执行:
    #ansible-playbook createdir.yml -e "host=web user=root" # 给{{ host }} {{ user }} 传值
  • 相关阅读:
    Cocos2d-x 2.x项目创建
    Mac OS 使用Git
    Android Studio And Gradle
    Mac OS环境变量配置(Android Studio之Gradle)
    【Android UI】 Shape详解
    JS-OC通信之Cordova简介
    python类的定义和使用
    Android屏幕适配常识
    Python面试315题
    第十五篇 Python之文件处理
  • 原文地址:https://www.cnblogs.com/kuku0223/p/7767019.html
Copyright © 2011-2022 走看看