首页 > 其他 > 详细

ansible学习笔记二

时间:2019-06-24 21:49:52      阅读:112      评论:0      收藏:0      [点我收藏+]
playbook里如果一个命令想让他无论正确还是错误都继续执行可以使用
cat /root/dlow || /bin/true
cat /root/dlow
ignore_errors:True
··········

--list-host查看主机列表
··········

--limit ip 只对这个主机执行

·········

-vvvv 查看详细信息

·········

-C 测试
·······

notify通知
handlers触发
有变动想改变
·········
tags:跟在action后面使用,标签
命令行调用为ansible-playbook -t tagsname xx.yml
多个标签用,隔开
多个action可以共用一个标签
·········
{{ 变量名 }}
命令行赋值可以用-e ‘变量名=xxx‘
多个变量用空格隔开
··········
在playbook中直接定义变量
vars:

  • 变量名1:值1
  • 变量名2:值2

···········
变量还可以在hosts文件定义
跟在ip后面直接定义
还可以
[组名:vars]
直接定义
优先级是命令行大于单个主机大于组定义
············
变量还可以是一个单独的文件
vars_files:

  • vars.yml

playbook里这么调用
········
[root@ansible ansible-test]# cat vars.yml
var1: ding

文件里面这么设置变量
·········
template模板
模板里也可以引用变量
既有通用性也有灵活性
·········
when语句可以做控制
·········
{{ item }}
with_items:

  • xx
  • xx
  • xx

迭代
···········
{{ item.name }} {{ item.banji }}
with_items:
-- { ‘name‘: ‘ding‘,‘banji‘:‘3‘}
迭代嵌套
··········
ports: 列表 可以是字符串也可以是字典

  • x - ‘x1‘:‘1‘

    • ‘y2‘:‘2‘
  • x
  • x
    ···········
    模板里定义for循环
    {% for i in ports %} i就是变量,ports是定义好的列表

{% endfor %}
············
{% for i in ports %}
{% if x is defiend %} 循环里嵌套判断
{% endif %}
{% endfor%}

roles/
├── httpd
├── memcache
├── mysql
└── nginx
    ├── tasks
    │?? ├── group.yml
    │?? ├── main.yml
    │?? ├── restart.yml
    │?? ├── service.yml
    │?? ├── templ.yml
    │?? ├── user.yml
    │?? └── yum.yml
    └── templates
        └── nginx.conf.j2

                roles角色,可以将多个要做的事分开,主配playbook里只需调用即可
                - hosts: 192.168.3.61
                   remote_user: root
                   roles:
                        - role: nginx

ansible学习笔记二

原文:https://blog.51cto.com/13293172/2412944

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!