Ansible playbook

Posted niuli1987

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible playbook相关的知识,希望对你有一定的参考价值。

 

一. 为什么引入playbook

我们完成一个任务,例如安装部署一个httpd服务,我们需要多个模块(一个模块也可以称之为task)提供功能来完成。而playbook就是组织多个task的容器,他的实质就是一个文件,有着特定的组织格式,它采用的语法格式是YAML(Yet Another Markup Language)。YAML语法能够简单的表示散列表,字典等数据结构。具体请参考YAML详细语法

参考:https://blog.51cto.com/13589448/2068546

二. playbook基础组件

  • Hosts:运行执行任务(task)的目标主机
  • remote_user:在远程主机上执行任务的用户
  • tasks:任务列表
  • handlers:任务,与tasks不同的是只有在接受到通知时才会被触发
  • templates:使用模板语言的文本文件,使用jinja2语法。
  • variables:变量,变量替换{{ variable_name }}

三. playbook调用方式

 ansible-playbook [options] playbook.yml [playbook2 ...]
   -C, --check # 检查但是不做真正改变
   -f FORKS, --forks=FORKS # 指定并发
   --list-hosts # 列出符合条件的主机
   --syntax-check # 语法校验
   -e EXTRA_VARS, --extra-vars=EXTRA_VARS # 传值

应用

- hosts: webservers     # 用户组
  remote_user: root     # 远程用户
  tasks:          
  - name: install httpd   # 任务名称                           
    yum: name=httpd state=present  # 模块 安装
  - name: install configure file
    copy: src=httpd.conf dest=/etc/httpd/conf/
  - name: start httpd service
    service: name=httpd state=started

 

以上是关于Ansible playbook的主要内容,如果未能解决你的问题,请参考以下文章

Ansible 笔记 - 编写 playbook

d8,ansible

ansible playbook

1. ansible-playbook 变量定义与引用

ansible-playbook ERROR! Syntax Error

Jenkins+GitLab+Ansible playbook安装与基本使用