Ansible_playbook
前言
连接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的更多相关文章
- ansible_playbook 一键搭建集群架构
目录 基础优化 SSH.Ansible,批量管理服务项目 剧本开始-----.10分钟左右 mail.yaml base.yaml rsync.yaml nfs.yaml web.yaml tweb. ...
- ansible_playbook语法中的循环语句归纳
种类一.标准循环添加多个用户 - name: add several users user: name={{ item }} state=present groups=wheel with_items ...
- centos6 安装 ansible_ui
安装过程其实并不复杂,只不过出现的问题,遇到的问题比较多,也主要参考网上https://github.com/alaxli/ansible_ui/issues/15 中提到的方法,只不过我遇到自己的问 ...
- Flask Ansible自动化平台搭建(持续更新)
一:简介 使用Ansible + Flask + Celery搭建web平台. 目录结构 . ├── ansible_api │ ├── ansible_playbook_inventory.py ...
- websocket 和 ansible配合Tomcat实时日志给前端展示
业务流程图如下 效果图展示 1.django安装websocket模块 pip install dwebsocket 2.shell脚本 用来传递不同的行号输出不同的内容; 第一个参数为0的时候,默认 ...
- web基础之http
目录 1.Http协议介绍 Http工作原理 http的请求方法 http的响应响应状态码 状态码的类别 常用HTTP状态码简要介绍 用户访问网站携带的参数,以及服务端返回的参数 (http请求报文 ...
- ansible-playbook 实战案例 全网备份 实时备份
目录 ansible-playbook 基础介绍 1.YAML三板斧 2. ansible playbook 安装apache 示例 案例 全网备份 实时备份 环境规划 目录规划 base.yaml ...
- Ansible之playbook的使用总结 - 运维笔记
之前详细介绍了Ansible的安装, 配置, 以及Ansible常用模块的使用. 下面对Ansible的playbook用法做一小结. 为什么引入playbook?一般运维人员完成一个任务, 比如安装 ...
- ansible相关
上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(Custom Modules ...
随机推荐
- InheritableThreadLocal 在线程池中进行父子线程间消息传递出现消息丢失的解析
在日常研发过程中,我们经常面临着需要在线程内,线程间进行消息传递,比如在修改一些开源组件源码的过程中,需要将外部参数透传到内部,如果进行方法参数重载,则涉及到的改动量过大,这样,我们可以依赖Threa ...
- jenkins页面一直在Please wait while Jenkins is getting ready to work ...
原因:因为访问官网太慢.我们只需要换一个源,不使用官网的源即可. 1.找到jenkins工作目录 find / -name *.UpdateCenter.xml 2.修改文件中的url,随后重启就行了 ...
- P2575 高手过招 题解
题目描述 我们考虑如何把问题转换成博弈论来求解. 我们对于每一行之前都加上一个空格. 设原来这一行的空格个数是 \(C\) ,那么此时空格个数变成 \(C + 1\) . 然后按照从左到右的顺序给每一 ...
- resultMap自定义映射(一对多)
collection:处理一对多和多对多的关系 1) POJO中的属性可能会是一个集合对象,我们可以使用联合查询,并以级联属性的方式封装对象.使用collection标签定义对象的封装规则 publi ...
- CenetOS 7设置IP
使用ip addr查看网卡名称,如:eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0,编辑网卡名对应的配置文件: BOOTPROTO=dhcp ON ...
- IO流思维导图
IO思维导图总结 总览: 1.文件 <目标:File类的创建和删除的方法 > public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时, 创建一个 ...
- DENIED Redis is running in protected mode because protected mode is enabled
DENIED Redis is running in protected mode because protected mode is enabled redisson连接错误 Unable to i ...
- elasticsearchTemplate that could not be found
***************************APPLICATION FAILED TO START*************************** Description: Metho ...
- C++数据类型的引入
1.存储位数 计算机管理存储器(内存和外存)的最小单位是字节,每个字节存储一个8为二进制数.一个字节的存储范围就在(00000000 ~ 11111111),十进制表示就是0~255这个范围.为了方便 ...
- 你有没有想过用电子表格也能做MES、WMS、SRM和MRP
曾几何时,小微企业多半选择excel和WPS等电子表格,中小企业更喜欢选择用友金蝶和浪潮这样的国产大品牌软件,而大型企业则偏爱SAP.oracle这样的国外大品牌. 时至今日,风向却变了,品牌软件已不 ...