环境
centos:7.5(系统自带了python2.7.5版本)
ansible:2.9.9
注意:
1、管理节点可以是linus或者windows系统
2、被管理节点必须是linux系统
3、管理节点使用SSH、SFTP/SCP管理控制各节点
4、关闭并禁用selinux和firewalld
- 本文主要讲多种方式安装ansible,并制作离线安装包(不使用源码和pip方式)
可以参考ansible中文文档:http://www.ansible.com.cn/docs/intro_installation.html#yum
yum安装:
在线安装,需要联网,且能使用yum
$ sudo yum install ansible
- 如果需要安装epel-release RPM:
$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
从git上获取RPM包安装:
在线安装,需要联网,需要安装git命令
$ git clone git://github.com/ansible/ansible.git
$ cd ./ansible
$ make rpm
$ sudo rpm -Uvh ~/rpmbuild/ansible-*.noarch.rpm
推荐自制依赖包方式:
- 自建仓库安装需要在联网环境下进行,将需要的依赖包打包到本地,可在任意离线环境下安装
- 需要下载ansible安装包和createrepo安装包
0、首先要下载createrepo(后面自建仓库时需要)和ansible的依赖包
用yum下载程序依赖包,并保存到指定目录有三种方式:
1、将yum配置文件/etc/yum.conf中的keepcache=0改为1,然后用yum下载的安装包都会存在于cachedir指定的目录中
2、使用--downloadonly和--downloaddir=/data/packages,仅下载到指定目录不安装
#获取ansible的安装包与依赖
$ yum -y install ansible --downloadonly --downloaddir=/data/packages
#获取createrepo的安装包与依赖
$ yum -y install createrepo--downloadonly --downloaddir=/data/packages
3、使用yumdownloader命令,只下载不安装,该命令在软件包 yum-utils 里面,所以要先安装yum-utils
#安装yumdownloader命令
$ yum -y install yum-utils
#获取ansible的安装包与依赖
$ yumdownloader --resolve --destdir /data/packages ansible
#获取createrepo的安装包与依赖
$ yumdownloader --resolve --destdir /data/packages createrepo
使用以上任意方式完成后,会看到目录中的依赖包
然后打包保存至本地
$ cd /data/packages
$ tar -zcvf ./ansible.tar.gz /data/packages
#将ansible.tar.gz包下载到本地存放,然后上传到将要部署ansible的离线服务器上
使用自建仓库安装ansible
- 首先建立一个目录用于存放安装包,然后使用createrepo来创建repository仓库
# 上传ansible.tar.gz到/data/ansible目录下,并解压
$ tar -zxvf ansible.tar.gz -C /data/ansible
# rpm安装createrepo
$ cd /data/ansible
$ rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
$ rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
- 制作离线源
createrepo /data/ansible
此时在 /data/ansible目录下会自动生成新目录 repodata
- 新增yum文件/etc/yum.repos.d/ansible.repo
[ansible]
name=ansible ##仓库名
baseurl=file:///data/ansible ##仓库路径,由于是放在本地的只能用file协议
gpgcheck=0 #不做gpg检查
enabled=1 #开启该仓库
- 安装&测试
$ yum install ansible
$ ansible --version