ansible入门一(Ansible介绍及安装部署)
本节内容:
- 运维工具
- Ansible特性
- Ansible架构图和核心组件
- 安装Ansible
- 演示使用示例
一、运维工具
作为一个Linux运维人员,需要了解大量的运维工具,并熟知这些工具的差异,能够熟练运用这些工具去解决一些手动重复的劳动,一方面是避免人工操作失误,另一方面也可以提高工作效率。同时还能将自己从这些重复的工作中解放出来,以便研究更新和更深的技术。
运维工具大体上可以分为3类:
- OS Provisioning:提供操作系统安装的。PXE,Cobbler(repository,distritution,profile)。
- OS Config:cfengine、puppet、saltstack、chef、func、Task Excute工具(fabric、func、saltstack)
- Deployment:capistranoc、fabric
而Ansible是一款较新的工具,可以实现OS Config、Task Excute和Deployment。
运维工具实现远程管理的两种方式:
- 有agent:puppet、saltstack、func
- agentless:ansible、fabric
二、Ansible特性
- 学习曲线平缓;
- 不需要agent;
- 没有有线状态图,没有次序,我们自己定义动作间的依赖关系就行,任何一个任务出错会很快出错,你可以立即进行修改;
- 没有代理;
- 没有服务端;
- 依赖ssh来工作,无需ssl,也就无需证书等功能;
- 模块可以使用任何编程语言来编写,包括shell脚本;
- 默认使用ssh工作;
- 支持多级的解决方案。
三、Ansible架构图和核心组件
架构图:
ansible是Python编写的,Python有一个模块叫paramiko,paramiko组件能够实现并行地基于ssh协议远程连接至各主机的库。ansible就是用了paramiko。
核心组件:
- ansible core:ansible核心。
- host inventory:主机池,或叫主机列表,主机归档文件。
- core modules:ansible核心模块。
- custom modules:用户可以自定义模块
- playbook:将多个任务写在一个yaml格式的配置文件中。支持使用Python的jinjia2来定义模板。同一个playbook应用带同一台主机上,无论你应用多少次,他们的结果都是相等的,不会重复执行。这种特性我们称为幂等性。
- connect plugins:连接插件
- plugins:其他的一些插件,比如email、logging等等。
四、安装Ansible
可以选择源码编译安装或者yum安装。ansible的rpm包在epel源中,事先安装好epel源。我这里实验环境是CentOS 7。
安装:
# yum install ansible -y
查看安装的rpm包里有哪些文件:
# rpm -ql ansible | more
ansible配置文件:/etc/ansible/ansible.cfg
inventory文件:/etc/ansible/hosts
五、演示使用示例
1.环境信息
主机名 | 操作系统版本 | IP地址 | 安装软件 |
node1 | CentOS 7.0 | 172.16.7.151 | ansible-noarh-2.2.0.0-4.el7 |
node2 | CentOS 7.0 | 172.16.7.152 | 无 |
node3 | CentOS 7.0 | 172.16.7.153 | 无 |
2.配置Ansible主机登录其他主机使用密钥登录
由于Ansible默认使用ssh管理主机,所以首先需要配置Ansible所在主机登录其他被管理主机不需要输入密码。在node1主机上执行如下命令:
[root@node1 ~]# ssh-keygen -t rsa -P ''
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.7.151
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.7.152
[root@node1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.7.153
3.定义主机
每一个主机可以使用主机名,也可以使用ip地址。也可以把多个主机定义到一个组里。比如:
[root@node1 ~]# vim /etc/ansible/hosts
4.使用模块
Ansible是依赖模块进行工作的,里面有大量的模块帮助我们去完成任务。比如使用command模块:
[root@node1 ~]# ansible 172.16.7.152 -m command -a "date"
如上,在执行任务时,可以指定IP,也可以指定组名,ansible有个默认的组叫all,代表/etc/ansible/hosts文件里的所有主机。
列出当前主机可以使用的ansible模块:
[root@node1 ~]# ansible-doc -l
常用的模块有:user、yum、copy、command等。如果想知道某个模块怎么使用的,比如想知道yum怎么用:
[root@node1 ~]# ansible-doc -s yum
ansible入门一(Ansible介绍及安装部署)的更多相关文章
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- 微服务(入门一):netcore安装部署consul
环境准备 vs开发环境:vs2017 consul版本: 1.4.4 netcore版本:2.1 安裝Consul 1.从官网下载consul到本地,选择系统对应的版本进行下载到本地,下载地址:h ...
- Storm介绍及安装部署
本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...
- Kafka介绍及安装部署
本节内容: 消息中间件 消息中间件特点 消息中间件的传递模型 Kafka介绍 安装部署Kafka集群 安装Yahoo kafka manager kafka-manager添加kafka cluste ...
- hue框架介绍和安装部署
大家好,我是来自内蒙古的小哥,我现在在北京学习大数据,我想把学到的东西分享给大家,想和大家一起学习 hue框架介绍和安装部署 hue全称:HUE=Hadoop User Experience 他是cl ...
- Ansible介绍及安装部署
本节内容: 运维工具 Ansible特性 Ansible架构图和核心组件 安装Ansible 演示使用示例 一.运维工具 作为一个Linux运维人员,需要了解大量的运维工具,并熟知这些工具的差异,能够 ...
- Ansible第一篇:介绍及安装
Ansible介绍 Ansible是个什么东西呢?官方的title是"Ansible is Simple IT Automation"--简单的自动化IT工具.ansible基于P ...
- ansible入门及组件介绍
Ansible简介 Ansible是自动化运维的工具,基于Python开发,实现了批量系统配置.批量程序部署.批量运行命令等功能.Ansible是基于模块工作的,ansible提供一个框架,通过模块实 ...
- Hadoop入门进阶课程13--Chukwa介绍与安装部署
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan ...
随机推荐
- 长网址 短网址(http://www.zhihu.com/question/19852154?rf=21975802)
短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代 ...
- DataTable转换成IList
//文章出处: http://www.cnblogs.com/hlxs/archive/2011/05/09/2087976.html DataTable转换成IList 在用C#作开发的时候经常要把 ...
- 基于Node.js的爬虫工具 – Node Crawler
Node Crawler的目标是成为最好的node.js爬虫工具,目前已经停止维护. 我们来抓取光合新知博客tech栏目中的文章信息.访问http://dev.guanghe.tv/category/ ...
- GATK的硬过滤
https://software.broadinstitute.org/gatk/documentation/article.php?id=2806
- 《Java程序设计》实验1实验报告
20145318 <Java程序设计>实验1实验报告 实验题目 通过对500个数据进行操作,实现快速排序.选择排序.直接插入排序算法时间复杂度的比较:并在排序数据中快速查找某一数据,给出查 ...
- 教你如何挑选深度学习GPU【转】
本文转载自:https://blog.csdn.net/qq_38906523/article/details/78730158 即将进入 2018 年,随着硬件的更新换代,越来越多的机器学习从业者又 ...
- 在linux上使用tomcat服务器图片验证码不显示问题
背景描述:在liunx系统上,使用tomcat中间件,访问web项目,登录页面的图片验证码显示不出来,但是在window系统上可以正常显示 解决方案:设置一下这个文件tomcat/bin/catali ...
- webservice用cxf发布SOAP
cxf的安装,就是把文件解压,然后配置环境变量 http://cxf.apache.org/download.html这是官网下载 解压到这里 环境变量 wsdl2java命令测试 1.新建java项 ...
- .net知识点汇总
死锁的必要条件?怎么克服? 答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用 ...
- poi 取excel单元格内容时,需要判断单元格的类型,才能正确取出
以下内容非原创,原文链接http://blog.sina.com.cn/s/blog_4b5bc01101015iuq.html ate String getCellValue(HSSFCell ce ...