文档章节

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


© 著作权归作者所有

共有 人打赏支持
下一篇: saltstack SLS
eddy_linux
粉丝 21
博文 135
码字总数 188789
作品 0
成都
程序员
私信 提问
ansible在playbook中变量传入到执行脚本的方法

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

HelloEric
2015/10/21
3.1K
0
脚本中实现Ansible的playbook的方法

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

HelloEric
2015/09/21
221
0
Ansible_变量定义与引用

Ansible_变量定义与引用 Ansible变量定义与引用 inventory定义主机及主机组(自定义变量) $ cat hostslocalhost ansiblesshhost=192.168.38.104 key=104client105 ansiblesshhost=192.168.38......

乱世浮尘
2017/12/11
0
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 介绍 Ansible 架构 Ansible 安装 Ansible 配置文件及参数 Ansible 常用模块 Ansible playbook 1. Ansible 介绍 Ansible 是一个配置管理和应用部署工具,只需要...

行者阿难
10/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搭建Git服务器

Windows平台下搭建Git服务器 1、在自己电脑搭建Git服务器,且只有自己的电脑能访问。 即使是自己一个人在开发代码也强烈建议使用Git来管理代码。当然也可以只使用本地Git仓库的形式来管理代码...

国仔饼
14分钟前
0
0
百万并发下的Nginx优化,看这一篇就够了!

本文作者主要分享在 Nginx 性能方面的实践经验,希望能给大家带来一些系统化思考,帮助大家更有效地去做 Nginx。 优化方法论 我重点分享如下两个问题: 保持并发连接数,怎么样做到内存有效使...

JackFace
17分钟前
0
0
中学生读《皮囊》有感相关体会4300字[图]

中学生读《皮囊》有感相关体会4300字[图]: 我们时常知道从哪里来,但很少知道自己要到哪里去,因为我们经常不认识自己,又怎能看见自己皮囊下最真实的面目?——题记 满怀欣喜去迎接五一,应...

原创小博客
25分钟前
2
0
java_集合

非并发集合 并发集合

grace_233
27分钟前
2
0
正则表达式匹配不包含

^((?!xxx).)*$

安小乐
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部