ansible理解
inventory文件
[cassandra:children]
shcp-01
shcp-06
bjyt-03
[cassandra:vars]
snmp_path=/etc/snmp/snmpd.conf
[shcp-01]
w-tri_db0[1:5].og.shcp.qihoo.net
[shcp-06]
w-tri_db[06:10].og.shcp.qihoo.net ansible_ssh_passwd=123456
[bjyt-03]
w-tri_db[03:07].og.bjtp.qihoo.net ansible_ssh_port=60022
命令行执行
ansible -i cassandra-hosts all -m shell -a "touch /root/test.yxy" -s --ask-pass --ask-sudo-pass
-s 是使用sudo
--ask-pass 是询问登录密码
--ask-sudo-pass 是询问sudo到指定用户的密码
设置变量
[yangxiaoyi1@w38v inventory]$ ls
cassandra-hosts group_vars host_vars
#
[yangxiaoyi1@w38v group_vars]$ ls
shcp-01 shcp-06
#
[yangxiaoyi1@w38v shcp-01]$ ls
login_vars
# 查看组变量
[yangxiaoyi1@w38v shcp-01]$ cat login_vars
---
sshport: 22
httpport: 80
#执行查看效果
ansible -i cassandra-hosts shcp-01 -m shell -a "echo {{sshport}}" --ask-pass
patterns
关于主机名有几种正则表达式
1. 多个组名和主机名可以用:分隔
ansible -i cassandra-hosts shcp-01:shcp06 -m ping
#在shcp-01不再shcp-06
ansible -i cassandra-hosts shcp-01:\!shcp06 -m ping
#既在shcp-01 又在shcp-06
ansible -i cassandra-hosts shcp-01:\&shcp06 -m ping
2. 通配符*的使用
ansible -i cassandra-hosts w-tri_db*.og.shcp.qihoo.net -m ping
3. 应用正则表达式 以~开头
ansible -i cassandra-hosts ~^b -m ping
4. 逻辑!的应用
ansible -i cassandra-hosts w-tri_db*.og.bjtp.qihoo.net:\!w-tri_db03.og.bjtp.qihoo.net -m ping
模块
- shell 在目标主机执行shell命令
- ansible all -m shell -a "echo hello"
- copy 模块
#复制文件
ansible all -m copy -a "src=/tmp/1.log dest=/tmp"
#复制文件夹中的内容
ansible tmp -m copy -a "src=/tmp/tmp/ dest=/tmp"
#复制整个文件夹
ansible tmp -m copy -a "src=/tmp/tmp dest=/tmp"
- file模块
#修改文件权限
ansible tmp -m file -a "dest=/tmp/1.txt owner=yangxiaoyi group=yangxiaoyi mode=600"
#删除目录和文件
ansible tmp -m file -a "dest=/tmp/tmp/1.txt state=absent"
ansible tmp -m file -a "dest=/tmp/tmp/ state=absent"
#创建目录
ansible tmp -m file -a "dest=/tmp/tmp/ state=directory"
#创建文件
ansible tmp -m file -a "dest=/tmp/tmp/file state=touch"
- yum模块
# 安装包
ansible tmp -m yum -a "name=httpd state=latest"
删除包
ansible tmp -m yum -a "name=httpd state=absent"
- User模块
ansible all -m user -a "name=foo password=<crypted password here>"
#删除用户
ansible tmp -m user -a "name=foo state=absent"
- git模块
ansible tmp -m git -a "repo=git://foo.example.org/repo.git dest=/srv/myapp version=HEAD"
- service模块
#重启服务
ansible tmp -m service -a "name=sshd state=restarted"
value of state must be one of: reloaded, restarted, started, stopped, got: restart
- 获取facts
ansible tmp -m setup
ansible配置文件
用户可以修改一下配置文件来修改设置,他们的被读取的顺序如下:
- ANSIBLE_CONFIG (一个环境变量)
- ansible.cfg (位于当前目录中)
- .ansible.cfg (位于家目录中)
- /etc/ansible/ansible.cfg
PlayBook使用
#我们想忽略某一错误,通过执行成功与否来做决定,我们可以像这样:
tasks:
- command: /bin/false
register: result
ignore_errors: True
- command: /bin/something
when: result|failed
- command: /bin/something_else
when: result|success
- command: /bin/still/something_else
when: result|skipped
今后所有操作都使用playbook,增加熟练度
模拟场景一
- 两台线上服务器需要部署nginx、php-fpmd、
一台服务器做Mysql - 创建虚拟主机,修改服务配置文件
- 日志切割,数据库备份,优化配置,系统优化
- 启动服务
具体可按ansible文件夹中roles内容
ansible理解的更多相关文章
- 进击的 Ansible(二):如何快速搞定生产环境 Ansible 项目布局?
Tips:与前文 <进击的 Ansible(一):Ansible 快速入门> 一样,本文使用的 Ansible 版本 2.5.4,项目演示环境 MacOS.由于 Ansible 项目开发活 ...
- Ansible用于网络设备管理 part 2 对Jinja2 YAML 和 module的理解
虽然很不想用“应该”这个词,但是还是写上了,的确我自己目前就是这么理解的. 那么这个理解就是,Ansible的一个key point 就是总的一个playbook是去依赖很多元素的,就像一开始那个图里 ...
- ansible基础-理解篇
1. 介绍 要说现在的部署工具,ansible可以说家喻户晓了. ansible是一个开源软件,用于软件供应.配置管理.应用部署.ansible可以通过SSH.remote PowerShell.其他 ...
- ansible role 理解
1.roles意为角色,主要用于封装playbook实现复用性.在ansible中,roles通过文件的组织结构来展现.
- 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令
2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...
- 用Vagrant和Ansible搭建持续交付平台
这是一个关于Vagrant的学习系列,包含如下文章: Vagrant入门 创建自己的Vagrant box 用Vagrant搭建Jenkins构建环境 用Vagrant和Ansible搭建持续交付平台 ...
- 初探ansible安装
一.ansible介绍常用的自动化运维工具 Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱SaltStack —基于 Python 开发,采用 ...
- ansible代码分析第一篇--主文件—ansible分析
2016年2月23日,学习,分析ansible代码 ansible是一种运维中使用的批量部署的工具,它本身是一种框架,具体的部署和架构分析,下面这篇文章讲的不错. http://os.51cto.co ...
- 翻译-Salt与Ansible全方位比较
原文链接:http://jensrantil.github.io/salt-vs-ansible.html 作者: Jens Rantil 之前某些时候我需要评估配置管理系统.结合从他人得到的意见,我 ...
随机推荐
- 洛谷P5155 [USACO18DEC]Balance Beam(期望,凸包)
你以为它是一个期望dp,其实它是一个凸包哒! 设平衡木长度为\(L\),把向右走平衡木那个式子写一下: \[dp[i]=\frac{dp[i+1]+dp[i-1]}{2}\] 然后会发现这是一个等差数 ...
- EOF输入
EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取.资料源通常称为档案或串流.通常在文本的最后存在此字符表示资料结束.是int类型的宏定义,它扩展为负整数 ...
- k-均值聚类算法1
一.k-means算法: 1.优缺点: 优点:容易实现. 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢. 2.伪代码描述:
- Django框架基础之Form组件
服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能: 1 验证(显示错误信息) 2 保留用户上次输入 ...
- java day02 记录
一.介绍运算符使用,包含+ - * / 及 自增.三元运算等 package com.itheima_02; /* * 赋值运算符: * 基本的赋值运算符:= * 扩展的赋值运算符:+=,-=,*=, ...
- python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器
## 复习 '''1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值 eg:fn()() =&g ...
- Django mysql应用
环境:python3.Django2 1.安装驱动mysqlclient pip3 install mysqlclient 2.创建一个数据库 CREATE DATABASE database_nam ...
- fork子进程
title: fork子进程 data: 2019/3/21 20:24:39 toc: true --- 这里实在学习socket编程前的小知识点,用来创建多个服务端 学习文档 函数可以有两个返回值 ...
- Hive 锁处理
hive有两个锁,共享索(s) 和排它锁(x) 在进行ddl操作时,排他锁会阻止 ddl 操作.drop.alter table 如果一个hive查询使用到了表A,执行时间10分钟.在这10分钟内要d ...
- ArcGIS——使用符号级别区分重叠的面图层
1.有这样一个面图层shp文件(区域相重叠),需要做出如下右图的效果: 2.导入shp文件后,右键shp文件,属性->符号系统 3.高级->符号级别 将面积最大的图层的级别设为最小,面积最 ...