一ansible简介和安装

君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述一ansible简介和安装相关的知识,希望能为你提供帮助。
一、概述??1、概述ansible是2013年推出的一款IT自动化和DevOps软件,2015年被RedHat收购,是基于python研发,糅合很多老运维工具的优点,实现批量操作系统配置,批量程序部署,批量运行命令等功能
?ansible可以实现:
(1). 可以实现批量系统操作配置  
(2). 可以实现批量软件服务部署
(3). 可以实现批量文件数据分发
(4). 可以实现批量系统信息收集
--自动化部署APP
--自动化管理配置项
--自动化持续交付
【一ansible简介和安装】--自动化(AWS)云服务管理
2、ansible优点:--只需要SSH和Python即可使用
--无刻画段
--ansible功能强大,模块丰富
--上手容易,门栏低
--基于Python开发,做二次开发更容易
--使用公司较多,社区活跃
3、软件依赖关系(1).对管理主机
-要求Python2.6或Python2.7
ansible使用以下模块,都需要安装
-Paramiko
-PyYAML
-jinja2
-httplib2
-sik
(2).对于被托管主机
-ansible默认通过SSH协议管理机器
-被管理主机要开启ssh服务,允许ansible主机登录
-在托管主机要开启ssh服务
-在托管节点也要安装Python2.5或以上的版本
-如果托管节点开启了SElinux,需要安装libselinux-python
4、ansible执行原理?ansible执行命令时,通过其底层传输连接模块,将一个或数个文件,或者定义一个play或command命令传输到远程服务器/tmp目录的临时文件,并在远程执行这些play/command命令,然后删除这些临时文件,同时回传整个命令执行结果。
ansible底层基于安全可靠的SSH通讯协议?
二、安装配置??1、配置yum源(192.168.10.129)?wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装ansible
yum install -y ansible

一ansible简介和安装

文章图片

2、ansible配置文件ansible配置文件查找路径
-首先检查ANSIBLE_CONFIG变量定义的配置文件
-其次检查当前目录下的./ansible.cfg文件
-再次检查当前用户目录下的~/ansible.cfg文件
-最后检查/etc/ansible/ansible.cfg文件
?----------------------------------------------------------------------------------------------------
/etc/ansible/ansible.cfg是ansible的默认配置文件路径
#inventory       = /etc/ansible/hosts       #主机列表配置文件
#library         = /usr/share/my_modules/   #库文件存放目录
#remote_tmp     = ~/.ansible/tmp           #临时py文件存放在远程主机目录
#local_tmp       = ~/.ansible/tmp           #本地的临时执行目录
#forks           = 5                       #默认并发数                                          
#sudo_user       = root                     #默认sudo用户
#ask_sudo_pass = True                     #每次执行是否询问sudo的ssh密码
#ask_pass       = True                     #每次执行是否询问ssh密码
#remote_port     = 22                       #远程主机端口号
?----------------------------------------------------------------------------------------------------
ansible配置文件:
inventory 定义托管主机地址配置文件路径名
inventory 指定的配置文件,写入远程主机的地址
?host_key_checking = False ##跳过检查主机指纹这个最好设置为False 
##SSH远程主机交互是否需要确认 True (等待输入yes)、False(不需要输入yes)?
3、主机配置文件?vi /etc/ansible/hosts
[webserver]
192.168.10.128
192.168.10.130
?额外几种配置方式
(1)范围配置
[webserver]
node[3:4]
(2)包含配置
[cluster:children]
database
webserver
(3)组配置参数
[webserver:vars]
ansible_ssh_pass=\'123456\'
4、ansible基础命令ansible 主机集合 -m 模块名称 -a 参数名称
--主机集合 主机名或分组名,多个使用逗号分隔
-m 模块名称,如果没有指明,则默认使用command模块
-a 或者 --args 模块参数
其他参数
-i inventory文件路径,或可执行脚本
-k 使用交互方式登录密码
-e 定义变量
-v 显示详细信息
5、ansible免密远程管理的几种方式(1)非免密登录
ansible 192.168.10.130 -m ping -k  ###使用交互方式密码登录
一ansible简介和安装

文章图片

(2)配置主机清单配置文件
直接 /etc/ansible/hosts配置
??[webserver]
?192.168.10.128 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=\'123456\'
192.168.10.130 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=\'123456\'
一ansible简介和安装

文章图片

一ansible简介和安装

文章图片

或者组配置参数
[webserver]
192.168.10.128
192.168.10.130
[webserver:vars]
ansible_ssh_port=22 ##默认ssh端口号,如果做了修改,必须单独配置
ansible_ssh_user=root ###默认的ssh的用户名
ansible_ssh_pass=\'123456\'
一ansible简介和安装

文章图片

或者单独写一个主机清单文件
vi /tmp/hosts
??[webserver]
?192.168.10.128
192.168.10.130
[webserver:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=\'123456\'
ansible webserver -m ping -i /tmp/hosts ##-i指定主机清单的位置
一ansible简介和安装

文章图片

(3)设置密钥对,免密登录
直接ssh-keygen一路回车
然后ssh-copy-id root@192.168.10.128、ssh-copy-id root@192.168.10.130实现免密
另一种方式不使用默认的密钥
?cd /root/.ssh
?ssh-keygen -t rsa -b 2048 -N \'\' -f key
这样子生成的密钥对名称是 key key.pub
给所有主机部署密钥(必须在/root/.ssh目录下,不然找不到key.pub)
ssh-copy-id -i key.pub root@192.168.10.128
ssh-copy-id -i key.pub root@192.168.10.130
由于此时不是使用的默认的密钥名称
需要在主机清单添加配置
[webserver:vars]
ansible_ssh_private_key_file="/root/.ssh/key"

    推荐阅读