首页 > 代码库 > ansible安装和基本使用

ansible安装和基本使用

ansible是python开发的一款自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量配置系统、批量部署程序、批量运行命令等功能。ansible是基于模块工作的,本身没有批量操作系统的能力。真正去安装批量工作的是ansible所运行的模块,ansible只是提供了一种框架


ansible的模块分为核心模块和自定义模块:

核心模块:实现了大多数的批量工作

自定义模块:更具用户自身的需求自行开发模块,ansible支持任何语言开发的模块,但都必须遵循ansible的调用规则

ansible连接是基于ssh连接远程主机的,需要客户端运行ssh服务,不需要在客户端安装agent


ansible主组成:(如图)

ansible本身复制调用各个模块进行协同工作,ansible默认情况下一次控制5台节点

主要组件:

Host Inventory:定义ansible能够管理的主机

Connection Plugins:用于连接ansible的插件,基于python的paramiko模块开发

playbooks:需要执行的命令

core model:核心模块

custom model:自定义模块

plugins:通过插件进行日志记录

工作过程:ansible读取Inventory获取列表,Connection Plugins连接主机,并且借助模块,读取playbooks获得需要执行的操作,向主机发送指令,运行指令,并返回结果

技术分享

安装ansible
	vim /etc/yum.repos.d/ansibel.repo		#配置网络yum源
	[epel]
		nama=epel package
		baseurl=http://mirrors.aliyun.com/epel/6/x86_64/		#阿里云yum源
		gpgcheck=1
		enabled=1
		gpgkey=http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-6
	
	注意:如果系统中没有安装python环境需要自己手动安装,centos默认安装python2.6
		rpm -ivh libyaml-0.1.3-2.el6.art.x86_64.rpm  #安装ansible依赖包,需要自己下载
		rpm -ivh PyYAML-3.10-3.el6.x86_64.rpm 
		rpm -ivh python-six-1.9.0-2.el6.noarch.rpm 
		yum -y install ansibel	#安装ansible


	ansible命令:
		-a   		#模块的参数,如果执行默认COMMAND的模块
		-k  		#密码认证,默认使用秘钥认证
		-K  		#提示密码使用sudo,sudo表示提权操作
		-B      	#后台运行超时时间
		-f   		#并行任务数。NUM被指定为一个整数,默认是5
		-h		#打开帮助文档API
		-i		#指定库存主机文件的路径,默认为/etc/ansible/hosts
		-l    		#进一步限制所选主机/组模式  --limit=192.168.91.135 只对这个ip执行
		-m   		#执行模块的名字,默认使用command模块
		-M    		#要执行的模块的路径,默认为/usr/share/ansible/
		-T    		#指定SSH默认超时时间, 默认是10S
		-u     		#远程用户,默认是root用户
		--version       #输出ansible的版本
	
	ansible-doc
		-h          	#示命令参数API文档
		-M 		#查询模块,--module-path=MODULE_PATH 指定模块的路径
		-l            	#显示已存在的所有模块列表
		-s         	#显示playbook制定模块的用法	
	
	ansible配置实例:
		vim /etc/ansible/hosts
		   [abc]				#定义主机组
		   192.168.0.40
		   192.168.0.60
		   192.168.0.70
	ansible执行批量操作时默认使用秘钥验证,所有需要将服务器端的公钥拷贝到所有客户端
	如果使用密码验证需要保证所有客户端的密码一致,客户端用户默认为root
	
	服务器端生成秘钥对:
	  ssh-keygen		#生成秘钥对
	  ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.40   #将公钥拷贝到客户端
	  ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.60
	  ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.0.70
	注意:需要保证客户端支持秘钥认证,如果不支持需要进行手动修改sshd服务并重启
		
	ansible执行批量操作:
	    ansible abc -a ‘date‘	#默认使用command模块,显示所有主机时间信息
	    
	    
	    
	

本文出自 “自动化运维” 博客,请务必保留此出处http://hongchen99.blog.51cto.com/12534281/1921184

ansible安装和基本使用