自动化运维工之Ansible(1)
1.1 ansible简介
1.1.1 、Ansible软件介绍:
Ansible提供一种最简单的方式用于发布、管理和编排计算机系统的工具,可在数分钟内搞定。Ansible由Python语言开发, 默认通过 SSH 协议管理机器。只要ssh连接正常被控制节点不需要安装任何工具,就可以实现远程连接执行任何操作支持多节点发布、远程任务执行。Ansible可以实现批量系统配置、批量软件部署、批量文件拷贝、批量运行命令等功能。
Ansible的工作具有等幂性,Ansible在控制端只需要告诉监控端的期望状态就可以实现批量部署。
1)幂等性不会重复执行相同的指令。例如不会重复安装软件
2)期望状态只需要告诉被监控端的期望状态
官网:http://www.ansible.com/home
官网文档:http://docs.ansible.com/ansible/index.html
Github地址:https://github.com/ansible
1.1.2 、Ansible软件特点:
- q 不需要单独安装客户端(no agents),基于系统自带的ssh服务,sshd就相当于ansible的客户端
- q 不需要服务端(no servers)
- q 需要依靠大量的模块实现批量管理
- q 配置文件/etc/ansible/ansible.cfg
1.1.3 、ansible基本结构
ansible是自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量 运行命令等功能。Ansible所有的工作都是基于模块实现的,Ansible本身并没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供了一种框架。基本的框架及组件构成如下:
(1)、连接插件connectionplugins:负责和被监控端实现通信
(2)、hostinventory:指定操作的主机,是一个配置文件里面定义监控的主机
(3)、各种模块核心模块、command模块、自定义模块
(4)、借助于插件完成记录日志邮件等功能
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

1.1 ansible安装
1.1.1 、安装前准备:
#本机环境
[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.32-696.el6.x86_64
[root@m01 ~]# uname -m
x86_64
1.1.2 、安装ansible
服务端安装软件:
#更改yum源:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
说明:ansible软件安装需要epel源
yum -y install ansible <<-ansible软件安装
被管理端安装软件:
yum -y install libselinux-python #libselinux是selinux安全插件,如果关闭selinux可以不装
1.1.3 、ansible基础配置
配置文件列表:
[root@m01 ~]# tree /etc/ansible/
/etc/ansible/ ├── ansible.cfg #ansible配置文件 ├── hosts #被ansible管理的主机名单(分组) └── roles directory, files #目录查看: rpm –ql ansible /etc/ansible/ #配置文件目录 /usr/bin/ #执行文件目录 /usr/lib/pythonX.X/site-packages/ansible/ # Lib库依赖目录 /usr/share/doc/ansible-X.X.X/ # Help_doc文档目录 /usr/share/man/man1/ # Man文档目录 #ansible帮助 ansible-doc -l ansible-doc -s 模块名称 编辑ansible的主机配置文件hosts,添加主机组模块[web]
[root@m01 ~]# cp /etc/ansible/hosts{,.bak} #改前做备份是个好习惯
[root@m01 ~]# tail -5 /etc/ansible/hosts
[web] 172.16.1.31 172.16.1.41 172.16.1.7 172.16.1.8 注:如果没有设置ssh密钥连接,ansible 无法正常管理模块中的服务器,解决方法如下: 172.16.1.7 ansible_ssh_user=root ansible_ssh_pass=登录密码 172.16.1.8 ansible_ssh_user=root ansible_ssh_pass=登录密码 命令说明: ansible_ssh_user:ssh连接的用户名 ansible_ssh_pass:ssh连接的密码 ansible.cfg配置文件 [defaults] hostfile = /etc/ansible/hosts #主机配置文件位置 remote_user = root #远程登录用户 private_key_file=/root/.ssh/id_rsa #密钥存放位置 说明:测试使用不建
自动化运维工之Ansible(1)的更多相关文章
- 自动化运维工具之 Ansible 介绍及安装使用
一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...
- 自动化运维工具之ansible
自动化运维工具之ansible 一,ansible简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...
- 自动化运维工具:ansible
自动化运维工具:ansible Ansible(1):简介和基本概念 Ansible(2):安装配置 Ansible(3):ansible资源清单管理 Ansible(4):常用模块
- Linux实战教学笔记25:自动化运维工具之ansible (一)
第二十五节 ansible之文件的批量分发 标签(空格分隔): Linux实战教学笔记-陈思齐 ---本教学笔记是本人学习和工作生涯中的摘记整理而成,此为初稿(尚有诸多不完善之处),为原创作品,允许转 ...
- python自动化运维八:Ansible
Ansible是新出现的自动化运维工具,基于Python研发.糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行命令等功能.仅需在管理工作站上安装ansible程序配置被管控 ...
- Ansible自动化运维笔记2(Ansible的组件介绍)
1.Ansible Inventory (1)静态主机文件 默认的ansible invetory是/etc/hosts文件,可以通过ANSIBLE_HOSTS环境变量或者通过运行命令的时候加上-i ...
- 自动化运维工具之ansible(转)
原文链接:http://os.51cto.com/art/201409/451927_all.htm
- Ansible_自动化运维《Ansible之初识-1》
1.Ansible简介 1.1 Ansible介绍 Ansible 是一个简单的自动化运维管理工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fab ...
- ansible自动化运维
ansible 系统架构 ansible简介 ansible是新出现的自动化运维工具,ansible是一个配置管理和应用部署工具,基于Python开发,集合了众多运维工具(puppet.cfengin ...
随机推荐
- 20155222卢梓杰 实验九 Web安全基础
实验九 Web安全基础 今天不多bb,打开webgoat就是干好吧 1.简单字符串sql注入 可以看到这个实验说明是 "下表允许用户查看其信用卡号码.尝试插入一个SQL字符串,以显示所有信用 ...
- 20155227《网络对抗》Exp4 恶意代码分析
20155227<网络对抗>Exp4 恶意代码分析 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...
- 20155338《网络对抗》Exp6 信息搜集与漏洞扫描
20155338<网络对抗>Exp6 信息搜集与漏洞扫描 实验过程 外围信息搜集 (1)whois域名注册信息查询 下面是搜索hao123.com得到的结果 下面这个也是同理 (2)nsl ...
- [python]记录Windows下安装matplot的经历
最近学习在看<机器学习实战>一书,第二章的时候要用到Natplotlib画图,于是便开始安装Matplotlib.本文所用到的所有安装包都可以在文末的链接中找到. 首先从Matplotli ...
- 列表生成式+过滤器(filter)+映射(map)+lambda总结
这些都是python的特色,不仅强大,而且好用,配合起来使用更是无敌. 零.lambda lambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上 ...
- Scala学习(二)--- 控制结构和函数
控制结构和函数 摘要: 本篇主要学习在Scala中使用条件表达式.循环和函数,你会看到Scala和其他编程语言之间一个根本性的差异.在Java或C++中,我们把表达式(比如3+4)和语句(比如if语句 ...
- Yii2 软删除
什么是软删除 后台操作,删除一条记录,不希望真正的从数据库中删除,用个字段标记一下.比如delete_at.默认0.当执行删除操作,更新delete_at为当前时间戳 这样列表显示的时候只查询dele ...
- 洛咕 P3706 [SDOI2017]硬币游戏
假设f[i]是第i个同学胜利的概率,也就是随机序列第一个匹配到s[i]的概率 假设前面有一个字符串\(S\),(假设无限长但没有匹配),现在往后面要加上第i个串\(s[i]\),这个的概率设为\(P_ ...
- 软件测试_测试工具_APP测试工具_对比
以下是我自己整理的APP测试工具对比,各个工具相关并不全面.尤其关于收费一项,我只是针对自己公司的实际情况进行对比的,每个工具还有其他收费套餐可以选择,详情可进入相关官网进行查看 以下是部分官网链接: ...
- Frida----安装
介绍 它是本机应用程序的 Greasemonkey,或者更多技术术语,它是一个动态代码检测工具包.它允许您将JavaScript或您自己的库的片段注入Windows,macOS,GNU / Linux ...