黑帽联盟

 找回密码
 会员注册
查看: 847|回复: 0
打印 上一主题 下一主题

[基础服务] ansible笔记(11):初识ansible playbook(二)

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    本帖最后由 yun 于 2019-9-11 17:21 编辑

    ansible是一个系列文章,我们会尽量以通俗易懂的方式总结ansible的相关知识点。
    ansible系列博文直达链接:ansible轻松入门系列
    "ansible系列"中的每篇文章都建立在前文的基础之上,所以,请按照顺序阅读这些文章,否则有可能在阅读中遇到障碍。


    前文中,我们已经编写了 一个简单的剧本,这篇文章继续了解一下playbook的一些基础。

    有前文作为基础,如下示例是非常容易理解的:
    1. ---
    2. - hosts: test70
    3.   remote_user: root
    4.   tasks:
    5.   - name: make testfile
    6.     file:
    7.       path: /testdir/testfile
    8.       state: touch
    9.       mode: 0700
    复制代码
    上例中有一个play,这个play针对test70主机运行,这个play的任务列表中只有一个任务,这个任务就是调用file模块,确保/testdir/testfile文件存在并且testfile文件的权限为0700,把上例中的任务列表部分单独截取出来,如下所示
    1. tasks:
    2. - name: make testfile
    3.   file:
    4.     path: /testdir/testfile
    5.     state: touch
    6.     mode: 0700
    复制代码
    正如你所看到的,"path: /testdir/testfile" 表示为file模块的path参数赋值,我们使用"冒号"(冒号后有空格)对参数赋值。
    其实,除了这种使用冒号的方式,我们还可以使用如下格式为模块的参数赋值
    1. tasks:
    2. - name: make testfile
    3.   file: path=/testdir/testfile state=touch mode=0700
    复制代码
    如上所示,我们调用file模块时,设置了三个参数,path参数、state参数、mode参数,为参数赋值时,使用了"等号",每个参数之间使用空格隔开,这种格式也是完全正确的,如果你在使用一个模块时设置的参数比较多,那么使用上述格式设置参数时,这些参数可能会"挤在一行"里面,你也可以把它们分成多行去写,如下例所示
    1. tasks:
    2. - name: make testfile
    3.   file: path=/testdir/testfile
    4.         state=touch mode=0700
    复制代码
    即使把多个参数分行写,也需要注意缩进。
    上述书写格式都是0.8版本以后的ansible推荐的书写格式,在0.8版本之前,使用action关键字调用模块,示例如下:
    1. tasks:
    2. - name: make testfile
    3.   action: file path=/testdir/testfile state=touch mode=0700
    复制代码
    如上例所示,使用action关键字调用对应的模块,在当前版本中(博客中的ansible版本为2.4)仍然兼容这种语法

    在之前的示例中,我们对每个任务都指定了对应的名称,即每个task都有对应的name,当我们省略name时,默认以当前任务调用的模块的名称作为任务的名称,不过建议不要省略name,因为当任务存在name时,可读性比较高。
    在编写任务时,我习惯将name属性写在任务的开头,当然,任务的各个属性并没有严格的顺序要求,如下两种写法的效果是相同的。
    1. 写法一:
    2. tasks:
    3. - name: make testfile
    4.   file: path=/testdir/testfile
    5.         state=touch
    6.         mode=0700

    7. 写法二:
    8. tasks:
    9. - file: path=/testdir/testfile
    10.         state=touch
    11.         mode=0700
    12.   name: make testfile
    复制代码
    各属性顺序虽然没有要求,但是仍然需要严格按照缩进进行对齐。

    关于这些基础,就先暂时总结到这里,希望能够对你有所帮助。






    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部