ansible的playbook简单使用
一、介绍
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简单使用的更多相关文章
- ansible使用playbook的简单例子(ansible2.9.7)
一,ansible使用playbook的优点 1,用ansible执行一些简单的任务,使用ad-hoc命令就可以解决问题 如果执行复杂的功能,需要大量的操作,执行的ad-hoc命令会不够方便,这时我们 ...
- Ansible进阶--playbook的使用
一.什么是playbooksplaybooks是ansible的脚本.如同shell脚本一样,它是控制远程主机的一系列命令的集合,通过YAML语言编写.执行一些简单的任务,我们可以使用ad-hoc命令 ...
- ansible基础-playbook剧本的使用
ansible基础-playbook剧本的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.YAML概述 1>.YAML的诞生 YAML是一个可读性高,用来表达数据序 ...
- Ansible之playbook的使用总结 - 运维笔记
之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...
- Ansible6:Playbook简单使用
目录 一个简单的示例 通过Playbook安装apache示例 playbook的构成 Hosts和Users 任务列表和action handlers tags 示例 ansbile-playboo ...
- 自动化运维工具——ansible剧本playbook(三)
一.Playbook--Ansible剧本 playbook是由一个或多个 "play"组成的列表 play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的ta ...
- Ansible之playbook拓展
一.handlers和notify结合使用触发条件 handlers同tasks是属同级,相当于一个特殊任务列表,这些任务同前文说的tasks里的任务没有本质的不同,用于当关注的资源发生变化时,才会采 ...
- 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续
ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...
- ansible学习-playbook的YAML语法
[一篇非常好的ansible参考博文] 初识Ansible http://liumissyou.blog.51cto.com/4828343/1616462 --------------------- ...
随机推荐
- 11175-From D to E and Back(思维)
Problem UVA11175-From D to E and Back Accept: 164 Submit: 607Time Limit: 3000 mSec Problem Descript ...
- [CQOI2014]和谐矩阵
嘟嘟嘟 遇到这种(看似)构造的题,我好像一般都做不出来-- 然而这题正解是高斯消元解异或方程组-- 首先我们容易列出式子a[i][j] ^ a[i - 1][j] ^ a[i + 1][j] ^ a[ ...
- 深入理解koa中的co源码
阅读目录 一:理解Generator 二:理解js函数柯里化 三:理解Thunk函数 四:理解CO源码 回到顶部 一:理解Generator 在看co源码之前,我们先来理解下Generator函数.G ...
- sendmail简单配置
yum -y install sendmail sendmail-cfservice sendmail startservice saslauthd statusif [ $? -ne 0 ];the ...
- [MicroPython]TPYBoardv102播放音乐实例
0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验.更多MicroPython的教 ...
- Java多线程(一)多线程基础
一.进程 进程是操作系统结构的基础:是一次程序的执行:是一个程序及其数据在处理机上顺序执行时所发生的活动.操作系统中,几乎所有运行中的任务对应一条进程(Process).一个程序进入内存运行,即变成一 ...
- face detection[S^3FD]
本文来自<\(S^3\)FD: Single Shot Scale-invariant Face Detector>,时间线为2017年11月. 0 引言 基于锚的目标检测方法,是通过分类 ...
- Ext中 grid 设置行样式
//设置样式 JS var SetRowClass = function(record, rowIndex, rowParams, store) { if (record.data.status ...
- 开源工具 DotnetRSA 快速生成和转换RSA秘钥
一.简介 DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法 ...
- C#邮件发送类 简单实用 可自定义发件人名称
上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out string errorM ...