CentOS7安装Ansible2.8.3

文章目录

CentOS7安装Ansible2.8.3

一、Ansible简介

ansible是一款自动化运维工具,可以帮助我们批量化管理主机。使用它可以大大加快运维的工作效率。ansible是基于Python开发的,所以我们在安装ansible之前还需要安装Python。

二、准备工作

根据《CentOS7实验模板机搭建》里搭建的模板机,克隆出一台CentOS7的主机。

三、部署搭建

1. 修改主机名和hosts文件

HOSTNAME=ansible
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts

2. 安装Python3.7.4,并且升级pip

cd /tmp
wget https://mirrors.huaweicloud.com/python/3.7.4/Python-3.7.4.tgz
tar -xf Python-3.7.4.tgz
cd Python-3.7.4
yum -y install openssl-devel zlib-devel gcc libffi-devel
./configure --with-ssl --enable-shared \
LDFLAGS="-Wl,-rpath /usr/local/lib"
# 使用--with-ssl参数,很多网络安装源是https协议的
# 提前预装openssl-devel包,否则--with-ssl参数无法生效
# 提前预装libffi-devel,否则报错: No module named '_ctypes',具体请看文末补充说明
make && make altinstall
# 添加软链接
ln -s /usr/local/bin/pip3.7 /usr/local/bin/pip
mkdir -pv ~/.pip/
cat >~/.pip/pip.conf<<EOF
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120
EOF
pip install --upgrade pip
  •  
  •  

3. 使用pip安装virtualenv

pip install virtualenv
# 使用虚拟环境

4. 创建deploy用户,并配置好pip国内源

useradd deploy
echo deploy|passwd --stdin deploy
su - deploy
mkdir -pv ~/.pip/
cat >~/.pip/pip.conf<<EOF
[global]
index-url = https://mirrors.huaweicloud.com/repository/pypi/simple
trusted-host = mirrors.huaweicloud.com
timeout = 120
EOF

5. 使用 virtualenv 命令创建一个专用的python3.7环境来配置安装使用ansible2.8.3

virtualenv -p /usr/local/bin/python3.7 .py3.7.env
cd .py3.7.env
source ~/.py3.7.env/bin/activate
pip install paramiko PyYAML jinja2
wget https://mirrors.huaweicloud.com/ansible/ansible-2.8.3.tar.gz
tar -xf ansible-2.8.3.tar.gz
ln -s ansible-2.8.3 ansible
cd ansible
python setup.py build
python setup.py install
ansible --version

6. 配置deploy用户的环境变量

su - deploy
echo 'source ~/.py3.7.env/bin/activate'>>~/.bash_profile

四、补充说明

1. No module named '_ctypes’错误的原因:

Python3 中有个内置模块叫 ctypes,它是 Python3 的外部函数库模块,它提供兼容 C 语言的数据类型,并通过它调用 Linux 系统下的共享库(Shared library),此模块需要使用 CentOS 7 系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。所以错误原因是:在 CentOS 7 系统中没有安装外部函数库(软件包名:libffi)的开发链接库软件包。

2. 使用virtualenv环境的好处:

可以避开与yum使用的Python2.x版本的冲突

3. ansible另一种安装方法:

可以在Github上克隆ansible的项目,然后checkout版本,编译安装。因为从Github上拉该项目速度较慢,这个方法不推荐。

文章转自:

https://blog.csdn.net/sonoface/article/details/99474227

猜你喜欢

转载自blog.csdn.net/liuwkk/article/details/112172356