ansible学习笔记(三)

  1.标准循环:为了保持代码简洁,重复的任务可以简写(我理解就是变量赋值,迭代取值之后执行)[with_items:]

    例子:   -name: add serveral users

           user: name={{item}} state=present group=wheel

           with_items:

                -testuser1

              -testuser2

  使用with_items 用于迭代的数据类型不仅支持字符串列表还支持哈希列表({key:value})

   例子:    -name: add serveral users

            user: name={{item.name}} state=present groups={{item.groups}}

            with_items:

              -{name:'testuser1',group:'wheel1'}

             -{name:'testuser2',group:'wheel2'}

    2.嵌套循环: [with_nested]

        例子:  -name: give users access to multiple

              -mysql-user:name={{item[0]}} priv={{item[1]}}.*:all oppend_privs:yes,password=foo

              -with-nested:

                  -['alice',';bob']

                 -['clientdb','employeedb','providerdb']


    3.对哈希列表循环:[with_dict]

    4.对文件使用循环列表:[with_fileglob]

     用with_fileglob可以以非递归的方式来模式匹配单个目录中的文件

    5.对并行数据集使用循环:[with_together]

       例如对于 alpha:['a','b','c'], number:[1,2,3]  想要获得('a',1),('b',2)('c',3)  即

         tasks:

           -debug: msg="{{item.0}} and {{item.1}}"

           with_together:

              - "{{alpha}}"

              - "{{number}}"

    6.对整数序列使用循环 [with_sequence]

       可以以升序数字顺序生成一组序列,可以指定起始值,终止值,以及可选的步长

       指定参数时也可以用key=value 这种键值对的方式,若采用这种方式,‘format’是一个可打印的字符串

       数字值可以被指定为10进制,16进制,或8进制。但是负数不受支持

   7.随机选择[with_random_choice]

      它是用来随机获取一些值,它并不是负载均衡,它有时也可以用作一个简化版的负载均衡器。(对于数组中的值会被随机选择一个)。这个功能可以用在一个可预测的自动化环境中添加混乱和兴奋点。

   8.本地playbooks, 可以直接设置hosts:,然后使用命令行:ansible-playbook playbook.yml -connection=local 或者 单独存放于playbook中:

    -hosts:127.0.0.1

    connection:local

   9,配置环境变量:使用environment

   10.Playbook中的错误处理:

     忽略错误的命令: 通常情况下,出现失败时ansible会停止在宿主机上执行,有时,想要继续执行下去,可以添加:ignore_errors:yes

     控制对失败的定义:有时候一条命令的错误码毫无意义,只有最后的输出结果能告诉我们出了什么问题,比如只需要知道最后的‘FAILED’就可以添加:failed_when:"",

     覆写更改结果

   11.标签:方便于在一个大型的playbook中值运行其中特定的配置而无需运行整个playbook将会很有用

   12.vault:用来加密数据文件:

     创建打开YAML文件:vim test.yml , ansible-playbook test.yml(路径要写对)


 创建加密文件:ansible-vault creat test.yml

     编辑加密文件:ansibkle-vault edit test.yml

 给加密文件修改密码:ansible-vault rekey test.yml



 加密普通文件: ansible-vault encrypt test.yml


   解除已加密文件: ansible-vault decrypt test.yml


 查阅已加密文件: ansible-vault view test.yml

 13.从指定任务开始运行playbook文件以及分步运行playbook

       start-at-task : 是从指定的任务开始执行playbook 使用 start-at

       分步运行playbook:用-step

   14.Python API :可通过扩展ansible来响应大量的Python事件,用Python写来插件调用外部的数据源。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值