前言

连接https://galaxy.ansible.com下载相应的roles

# 列出已安装的galaxy
ansible-galaxy list
# 安装galaxy
ansible-galaxy install geerlingguy.redis
# 删除galaxy
ansible-galaxy remove geerlingguy.redis

ansible-pull

推送命令至远程,效率无限提升,对运维要求较高,用的不多


ansible-playbook

1.基本用法

意为:剧本,是yml/yaml格式

下面是简单的例子

touch hello.yml
vim hello.yml

内容如下

---
- hosts: all
remote_user: root tasks:
- name: hello
command: hostname

保存后执行

ansible-playbook -C(检查防止错误) hello.yml

2.内容加密

因为playbook中可能有敏感信息所以需要加密,加密之后就看不到内容了哦

# 加密
[root@mcw ~]# ansible-vault encrypt lbw.yml
New Vault password:123
Confirm New Vault password:123
Encryption successful
[root@mcw ~]# cat lbw.yml
$ANSIBLE_VAULT;1.1;AES256
38333666333665633363616532663434666239666166326537663562393461646266613863643134
6138636338346661643162386431626161613730363864660a353235323338343664623266653562
31386135633337383366633762656433393063386562343530613164373238663264633737313930
6334313732663465300a393033323466626237663833366133623638663532373334633264643834
39323130646232356233346430623966336464323331633032613931643137666331633437313937
38343265323731343961373636656665346666633061666263316533623737373735636133303565
30643063333936613565643236393463373839303537386536363662306464656562313334373638
66343366383266313830373438363466613264333063336361666533613164343966353465343938
3365 # 解密
[root@mcw ~]# ansible-vault decrypt(解密)/view(查看)/edit(编辑)/rekey(改密) lbw.yml
Vault password:123
Decryption successful
[root@mcw ~]# cat lbw.yml
---
- hosts: all
remote_user: root tasks:
- name: hello
command: hostname

3.多任务示例

---
- hosts: all
remote_user: root tasks:
- name: create new file
file: name=/data/newfile state=touch
- name: creat new user
user: name=test system=yes shell=/sbin/nologin
- name: install package
yum: name=httpd
tags: inshttpd
- name: copy html
copy: src=/ dest=/
- name: copy test html
copy: src=/ dest=/
- name: copy conf file
copy: src=fiels/httpd.conf dest=/etc/httpd/conf backup=yes
notify: restart service(这里调用触发器里面定义的触发事件)
- name: start service
service: name]httpd state=started enable=yes
tags: rshttpd handlers:(触发器)
- name: restart service
service: name=httpd state=restarted

多个任务可以共用一个tags!!!比如inshttpd和rshttpd可用httpd来代替两个tags

任务后添加tags标签后,执行playbook时就可以单独执行指定tags的任务

ansible-playbook -t rshttpd(自定义的tags名,多tags可用逗号隔开) playbook.yml

4.playbook中的变量

  • 方法一

这里的变量为‘pkname1,pkname2’

#文件名为app.yml
---
- hosts: all
remote_user: root tasks:
- name: install package
yum: name={{ pkname1 }}
- name: install package
yum: name={{ pkname2 }}
- name: restart service
service: name={{ pkname1 }} state=restarted
- name: restart service
service: name={{ pkname2 }} state=restarted

如何对变量赋值

# ==注意:命令中的参数赋值优先级最高哦==
ansible-playbook -e 'pkname1=*** pkname2=****' app.yml
  • 方法二

直接在yml文件中定义变量

#文件名为app.yml
---
- hosts: all
remote_user: root vars:
- pkname1: ***
- pkname2: ** tasks:
- name: install package
yum: name={{ pkname1 }}
- name: install package
yum: name={{ pkname2 }}
- name: restart service
service: name={{ pkname1 }} state=restarted
- name: restart service
service: name={{ pkname2 }} state=restarted

这边就无需再命令中赋值了

ansible-playbook app.yml
  • 方法三

主机清单中定义变量

# 中括号分组,主机名是自己定义的参数可以在playbook中使用
[wbservs]
192.168.1.101 http_port=81
192.168.1.102 http_port=82

playbook中使用主机清单中的变量

---
- hosts: all
remote_user: root tasks:
- name: set hostname
hostname: name=www{{ http_port }}.lbwnb.com

Ansible_playbook的更多相关文章

  1. ansible_playbook 一键搭建集群架构

    目录 基础优化 SSH.Ansible,批量管理服务项目 剧本开始-----.10分钟左右 mail.yaml base.yaml rsync.yaml nfs.yaml web.yaml tweb. ...

  2. ansible_playbook语法中的循环语句归纳

    种类一.标准循环添加多个用户 - name: add several users user: name={{ item }} state=present groups=wheel with_items ...

  3. centos6 安装 ansible_ui

    安装过程其实并不复杂,只不过出现的问题,遇到的问题比较多,也主要参考网上https://github.com/alaxli/ansible_ui/issues/15 中提到的方法,只不过我遇到自己的问 ...

  4. Flask Ansible自动化平台搭建(持续更新)

    一:简介 使用Ansible + Flask + Celery搭建web平台. 目录结构 . ├── ansible_api │   ├── ansible_playbook_inventory.py ...

  5. websocket 和 ansible配合Tomcat实时日志给前端展示

    业务流程图如下 效果图展示 1.django安装websocket模块 pip install dwebsocket 2.shell脚本 用来传递不同的行号输出不同的内容; 第一个参数为0的时候,默认 ...

  6. web基础之http

    目录 1.Http协议介绍 Http工作原理 http的请求方法 http的响应响应状态码 状态码的类别 常用HTTP状态码简要介绍 用户访问网站携带的参数,以及服务端返回的参数 (http请求报文 ...

  7. ansible-playbook 实战案例 全网备份 实时备份

    目录 ansible-playbook 基础介绍 1.YAML三板斧 2. ansible playbook 安装apache 示例 案例 全网备份 实时备份 环境规划 目录规划 base.yaml ...

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

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

  9. ansible相关

    上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(Custom Modules ...

随机推荐

  1. XMAL中的x是何方神僧

    在一开始我们接触WPF时,总是被小X牵着鼻子走,还不知道它是谁,比如 <Window x:Class="Blend_WPF.WindowStyle"        xmlns ...

  2. Mysql事物锁等待超时(Lock wait timeout exceeded; try restarting transaction)

    一.问题描述 在做查询语句时,MySQL 抛出了这样的异常:锁等待超时 Lock wait timeout exceeded; try restarting transaction,是当前事务在等待其 ...

  3. 【Java面试】RDB 和 AOF 的实现原理、优缺点

    Hi,大家好,我是Mic. 一个工作了5年的粉丝私信我,最近面试碰到很多Redis相关的问题. 其中一个面试官问他Redis里面的持久化机制,没有回答得很好. 希望我帮他系统回答一下. 关于Redis ...

  4. springboot集成swagger2报Illegal DefaultValue null for parameter type integer

    springboot集成swagger2,实体类中有int类型,会报" Illegal DefaultValue null for parameter type integer"的 ...

  5. 打印三角形及debug用法

    package www.nihao; public class demo01 { public static void main(String[] args) { //打印三角形 5行 for(int ...

  6. linux Error downloading packages free 0 * needed 71 k

    linux  Error downloading packages free   0      * needed 71 k 原因:硬盘空间不足 查看磁盘大小 /]# df -hl 从/主目录开始搜索, ...

  7. 【Codeforces1706A】 Another String Minimization Problem

    官方标签 贪心.字符串 题目描述 输入 输出 样例输入 6 4 5 1 1 3 1 1 5 2 4 1 1 1 1 1 2 4 1 3 2 7 7 5 4 5 5 5 3 5 样例输出 ABABA B ...

  8. NOI / 1.4编程基础之逻辑表达式与条件分支讲解-01:判断数正负

    总时间限制: 1000ms 内存限制: 65536kB 题目: 描述 给定一个整数N,判断其正负. 输入 一个整数N(-109 <= N <= 109) 输出 如果N > 0, 输出 ...

  9. 西文字符与中文GBK编码的区别

    一般来讲二者读取的时候西文字符的数值是正,而中文字符的数值是负的,此时读取的是中文字符的前一半,需要再读取一个char类型的数据,在大多数运行环境下这个规则都是用. ps:转自算法竞赛的笔记,要注意在 ...

  10. php date函数和首位带0问题

    一.带零 echo date('Y-m-d'); 2012-08-08 二.不带零 echo date('Y-n-j'); 2012-8-8 以下为参数详解(转载): a - "am&quo ...