学习ansible, 一些基本概念和用法示例

1. 首先是中文文档http://www.ansible.com.cn/docs/playbooks_variables.html#valid-variable-names

    写的还是不错的。基本的东西讲的很清楚。

2. 关于ansible的playbook的简单使用

    因为我们现在用到的基本是playbook,所以重点介绍以下playbook.

    playbook 由一系列小任务组成,一个任务就是一个task.  如果task之间关联性比较强,还可以组成block.

    role 的概念实际上我认为是一种对playbook的最佳实践。role最主要的部分依然是一组task, 组成部分是handlers, templates 等。这样从功能上看就是一个独立,完整的小模块。  role可以被playbook引用。

   值得一提的是,ansible中有大量的module可以直接使用,功能强大。这里先不举例介绍了。

   http://www.ansible.com.cn/docs/modules_core.html

   一个最简单的playbook的示例, ./ansible/playbook.yml

---
- hosts: localhost
  gather_facts: yes #默认打开的,不写也是打开的.no 关闭
  roles:
     - network_try

  它所引用的role, 它的路径 ./ansible/roles/network_try/tasks/main.yml

---
- name: print Hello
  shell: echo {{ var1 }} >> /tmp/1.txt

- name: print 2
  shell: echo {{ ansible_hostname }} >> /tmp/1.txt

   roles 中出现了变量,变量是采用Jinja2 的样式,{{ }} 包起来,如果在一行中变量打头出现的话, 为防止歧义 需要用“”包起来,“{{   var   }}”.  在playbook. 变量的使用有几种方式。

   1. 第一种就是通过Gathering Facts 的方式,实际上是ansible 自动聚合的很多主机信息。执行以下命令,可以看到打印出的很多信息,这些信息可以在role中直接使用。

#ansible hostname -m setup
ansible localhost -m setup

   2. 执行命令的时候从外部传入.  如举例的playbook文件,其执行命令如下,实际上--extra-vars后边可以跟一个json.

ansible-playbook playbook.yml ansible-playbook playbook.yml --extra-vars "var1='Hello World'"

  3. 可以编写本地文件,存放变量,然后在role/playbook中引入文件,使用变量。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值