一、介绍

playbook就是一个用yaml语法把多个模块堆起来的一个文件

核心组件:

Hosts:执行的远程主机列表
Tasks:任务,由模块定义的操作的列表;
Varniables:内置变量或自定义变量在playbook中调用
Templates:模板,即使用了模板语法的文本文件;
Handlers:和nogity结合使用,为条件触发操作,满足条件方才执行,否则不执行;
Roles:角色;

yaml文件示例

- hosts: 10.1.0.1        #定义主机
vars: #定义变量
var1: value
var2: value
tasks: #定义任务
- name: #任务名称。
#这里就可以开始用模块来执行具体的任务了。 handlers: #定义触发通知所作的操作。里面也是跟tasks一样,用模块定义任务。
- name: remote_user: #远程主机执行任务时的用户。一般都是root,一般也不用指定。 - hosts: web
vars:
tasks:
handlers:
remote_user:

二、简单使用

1、安装httpd

[root@master ~]# cat httpd.yaml
- hosts: all
tasks:
- name: "安装Apache"
command: yum install --quiet -y httpd httpd-devel
- name: "启动Apache,并设置开机启动"
command: service httpd start
command: chkconfig httpd on
#测试
[root@master ~]# ansible-playbook --check http.yaml

2、修改ssh密码

[root@master ~]# cat user.yaml
- hosts: all
remote_user: root
tasks:
- name: update user password
user: name={{name}} password={{chpass|password_hash('sha512')}} update_password=always [root@master ~]# ansible-playbook user.yaml -e "name=www chpass=123456"

3、添加ssh账号与sudo授权

[root@master ~]# cat add_user.yaml
- hosts: test
tasks:
- name: create ssh user
user: name={{username}} password={{mypass|password_hash('sha512')}}
- name: sudo
lineinfile: dest=/etc/sudoers state=present regexp=^%{{username}} line={{username}}\t{{sudo}} #使用创建zhang账号并sudo授予为ALL
[root@master ~]# ansible-playbook add_user.yaml -e "username=zhang mypass=123456 sudo='ALL=(ALL) ALL'" #测试
[root@master ~]# ssh zhang@172.31.0.181
zhang@172.31.0.181's password: Welcome to Alibaba Cloud Elastic Compute Service ! [zhang@node ~]$ sudo ls -l /root/.ssh/ We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: #1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility. [sudo] password for zhang:
total 4
-rw------- 1 root root 393 Jan 15 13:41 authorized_keys

ansible的playbook简单使用的更多相关文章

  1. ansible使用playbook的简单例子(ansible2.9.7)

    一,ansible使用playbook的优点 1,用ansible执行一些简单的任务,使用ad-hoc命令就可以解决问题 如果执行复杂的功能,需要大量的操作,执行的ad-hoc命令会不够方便,这时我们 ...

  2. Ansible进阶--playbook的使用

    一.什么是playbooksplaybooks是ansible的脚本.如同shell脚本一样,它是控制远程主机的一系列命令的集合,通过YAML语言编写.执行一些简单的任务,我们可以使用ad-hoc命令 ...

  3. ansible基础-playbook剧本的使用

    ansible基础-playbook剧本的使用 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.YAML概述 1>.YAML的诞生 YAML是一个可读性高,用来表达数据序 ...

  4. Ansible之playbook的使用总结 - 运维笔记

    之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...

  5. Ansible6:Playbook简单使用

    目录 一个简单的示例 通过Playbook安装apache示例 playbook的构成 Hosts和Users 任务列表和action handlers tags 示例 ansbile-playboo ...

  6. 自动化运维工具——ansible剧本playbook(三)

    一.Playbook--Ansible剧本 playbook是由一个或多个 "play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的ta ...

  7. Ansible之playbook拓展

    一.handlers和notify结合使用触发条件 handlers同tasks是属同级,相当于一个特殊任务列表,这些任务同前文说的tasks里的任务没有本质的不同,用于当关注的资源发生变化时,才会采 ...

  8. 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续

    ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...

  9. ansible学习-playbook的YAML语法

    [一篇非常好的ansible参考博文] 初识Ansible http://liumissyou.blog.51cto.com/4828343/1616462 --------------------- ...

随机推荐

  1. 11175-From D to E and Back(思维)

    Problem UVA11175-From D to E and Back Accept: 164  Submit: 607Time Limit: 3000 mSec Problem Descript ...

  2. [CQOI2014]和谐矩阵

    嘟嘟嘟 遇到这种(看似)构造的题,我好像一般都做不出来-- 然而这题正解是高斯消元解异或方程组-- 首先我们容易列出式子a[i][j] ^ a[i - 1][j] ^ a[i + 1][j] ^ a[ ...

  3. 深入理解koa中的co源码

    阅读目录 一:理解Generator 二:理解js函数柯里化 三:理解Thunk函数 四:理解CO源码 回到顶部 一:理解Generator 在看co源码之前,我们先来理解下Generator函数.G ...

  4. sendmail简单配置

    yum -y install sendmail sendmail-cfservice sendmail startservice saslauthd statusif [ $? -ne 0 ];the ...

  5. [MicroPython]TPYBoardv102播放音乐实例

    0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验.更多MicroPython的教 ...

  6. Java多线程(一)多线程基础

    一.进程 进程是操作系统结构的基础:是一次程序的执行:是一个程序及其数据在处理机上顺序执行时所发生的活动.操作系统中,几乎所有运行中的任务对应一条进程(Process).一个程序进入内存运行,即变成一 ...

  7. face detection[S^3FD]

    本文来自<\(S^3\)FD: Single Shot Scale-invariant Face Detector>,时间线为2017年11月. 0 引言 基于锚的目标检测方法,是通过分类 ...

  8. Ext中 grid 设置行样式

    //设置样式   JS var SetRowClass = function(record, rowIndex, rowParams, store) { if (record.data.status ...

  9. 开源工具 DotnetRSA 快速生成和转换RSA秘钥

    一.简介 DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法 ...

  10. C#邮件发送类 简单实用 可自定义发件人名称

    上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out string errorM ...