前言

我一直都想成为自动化运维界最亮的仔,奈何自己实力不允许。不过,我一直都在奋斗的路上;这不,最近就在学习自动化运维界的神器——Ansible。

要系统的学习一下Ansible,那就是要先搭建学习环境了,为了更切合我的实际工作环境,所以我需要在内网环境下搭建整套Ansible的学习环境,对于公网环境的搭建,我想说那个比较简单,几个命令就搞定了。对于内网环境的搭建,的确是非常麻烦的,所以这篇文章就对这个麻烦的事情进行一番总结,也希望我趟过的坑对你的学习有一点帮助。

离线安装

我们去Ansible的官网下载到最新的源代码,在源代码包中有一个requirements.txt文件,里面记录了安装Ansible需要依赖的包,在实际安装这些依赖包中,我们会发现这些依赖包又会依赖一些其它的包,所以当你看到这篇文章时,我想你是幸福的,因为我这里都整理好了,以及安装的顺序我都整理好了。来吧!

去PyPi下载这些依赖包的源码包

yum -y install python-devel openssl-devel

# 安装 setuptools
unzip setuptools-41.0.1.zip
cd setuptools-41.0.1
python3 setup.py install # 安装pycrypto
tar -xzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python3 setup.py install # 安装 PyYAML
tar -xzf PyYAML-5.1.tar.gz
cd PyYAML-5.1
python3 setup.py install # 安装MarkupSafe
tar -xzf MarkupSafe-1.1.1.tar.gz
cd MarkupSafe-1.1.1
python3 setup.py install # 安装Jinja2
tar -xzf Jinja2-2.10.1.tar.gz
cd Jinja2-2.10.1
python3 setup.py install # 安装ecdsa
tar -xzf ecdsa-0.13.2.tar.gz
cd ecdsa-0.13.2
python3 setup.py install # 安装simplejson
tar -xzf simplejson-3.16.0.tar.gz
cd simplejson-3.16.0
python3 setup.py install # 安装libffi-devel
yum -y install libffi-devel-3.0.5-3.2.el6.x86_64.rpm # 安装pycparser
tar -xzf pycparser-2.19.tar.gz
cd pycparser-2.19
python3 setup.py install # 安装cffi
tar -xzf cffi-1.12.3.tar.gz
cd cffi-1.12.3
python3 setup.py install # 安装ipaddress
tar -xzf ipaddress-1.0.22.tar.gz
cd ipaddress-1.0.22
python3 setup.py install # 安装six
tar -xzf six-1.12.0.tar.gz
cd six-1.12.0
python3 setup.py install # 安装asn1crypto
tar -xzf asn1crypto-0.24.0.tar.gz
cd asn1crypto-0.24.0
python3 setup.py install # 安装idna
tar -xzf idna-2.8.tar.gz
cd idna-2.8
python3 setup.py install # 安装pyasn1
tar -xzf pyasn1-0.4.5.tar.gz
cd pyasn1-0.4.5
python3 setup.py install # 安装PyNaCl
tar -xzf PyNaCl-1.3.0.tar.gz
cd PyNaCl-1.3.0
python3 setup.py install # 安装cryptography
tar -xzf cryptography-2.6.1.tar.gz
cd cryptography-2.6.1
python3 setup.py install # 安装bcrypt
tar -xzf bcrypt-3.1.6.tar.gz
cd bcrypt-3.1.6
python3 setup.py install # 安装paramiko
tar -xzf paramiko-2.4.2.tar.gz
cd paramiko-2.4.2
python3 setup.py install # 安装ansible
tar -xzf ansible-latest.tar.gz
cd ansible-2.7.10/
python3 setup.py install

对于上面的安装,大家的疑惑点进行说明一下:

Q1:为什么是Python3?

A1:因为我的内网服务器是Python 2的版本,而我更喜欢玩Python 3版本,对于Python 2版本不感冒,而这个内网服务器又有很多应用使用的Python 2,所以,我只能编译一个Python 3安装到这个服务器了,让Python 2和Python 3共存。

Q2:对于从源码安装Python第三方模块不是很明白。

A2:如果对源码安装Python依赖包还要疑惑的话,我想这篇《[Python安装第三方模块总结][2]》可以解答你的疑惑。

按照上面的顺序,挨个安装吧,就可以顺利的完成Ansible的安装。安装完成后,在用户环境变量中添加以下代码:

export PATH=/home/jelly/Python/bin:$PATH

这样就可以将Ansible的相关命令就添加到环境变量中,我们就可以直接使用了。执行ansible --version命令来查看是否安装正确。

总结

我想我的这篇文章应该是大家需要的,根据这篇文章的指导,你一定可以正确的完成Ansible的安装。好了,一篇简单而实用的文章完成了。如果觉的还不错,可以点击下方的“打赏”哦。

2019年5月18日,于内蒙古呼和浩特。

CentOS 7离线安装Ansible的更多相关文章

  1. CentOS 7离线安装MySQL 5.7

    系列文章首发平台为果冻想个人博客.果冻想,是一个原创技术文章分享网站.在这里果冻会分享他的技术心得,技术得失,技术人生.我在果冻想等待你,也希望你能和我分享你的技术得与失,期待. 前言 网上已经有那么 ...

  2. centOS 7 离线安装 MySQL 5.6 完美安装

    centOS 7 离线安装 MySQL 5.6 centOS 7 离线安装 MySQL 5.6 准备环境 1.离线 centOS 7(此处为 centOS 7 最小安装) 2.nginx 安装文件 ( ...

  3. 通过自制yum源离线安装ansible

    系统环境 --CentOS release 7 python版本--Python 3.5.4   背景:在企业环境中,安装ansible的服务器往往不能访问互联网,简单的下载ansible源码安装,会 ...

  4. 自制yum源离线安装ansible

    适应场景 在实际生产环境中,服务器往往是不能访问互联网,如果简单的下载ansible源码安装,会碰到缺少各种依赖包的问题,因此,推荐制作yum源,然后使用yum安装ansible. 实验环境 模拟可以 ...

  5. CentOS 8 离线安装 podman 解决方法

    CentOS 8 系统中如果没有安装Podman的话,想要离线安装会比较麻烦,因为podman依赖的包比较多,从网上一个一个下载会很繁琐,也容易出错. 这里介绍一种曲线救国的方式来离线安装. 首先分享 ...

  6. CentOS 8 Yum安装ansible

    ansible的安装 直接yum安装ansible会报错,需要先安装epel源. ansible的安装来源于epel仓库,因此在安装前需确保安装了正确的epel源. yum install -y ep ...

  7. centos如何离线安装部署node&pm2?

    最近我们项目要上即时通讯,因为项目对安全要求比较高,所以选择了即时通讯云服务器yun2win,他们提供了数据服务器让我们自己安装部署.那么问题来了,我们服务器是放在内网,完全无法访问外网,而yun2w ...

  8. [ansible-playbook]离线安装ansible 2.3

    痛点: 测试环境无法连上外网升级ansible 预计阅读时间:5分钟 参考文档 http://docs.ansible.com/ansible/latest/intro_installation.ht ...

  9. centos下离线安装zip和unzip

    首先如果你的centos可以联网,那可以不用看了,直接yum install -y zip unzip就行,非常的痛快! 如果不能联网,像我一样,只能用vpn连上去,做了点限制.那就非常烦了,yum了 ...

随机推荐

  1. Leaflet(Esri)初识

    加载本地地图 <html> <head> <metacharset=utf-8/> <title>IdentifyingFeatures</tit ...

  2. DOTNET CORE DATETIME在LINUX与WINDOWS时间不一致

    .net core项目,部署到CentOS上的时候,发现DateTime.Now获取的时间与Windows不一致,主要是时区不一致. static void Main(string[] args) { ...

  3. spring.net的简单使用(三)创建对象

    这篇主要说对象的创建方式. spring.net提供了三种创建对象的方式,分别是构造器创建,静态工厂创建,实例工厂创建. 多数的情况下,容器会根据对象定义中type属性值去直接调用相应类型的某个构造器 ...

  4. C语言的setlocale和localtime函数(C++也可用)

    Example 1234567891011121314151617181920212223242526272829303132 /* setlocale example */ #include < ...

  5. 在Qt工程中加Boost

    摘要: Boost是一个很强大的C++库,堪比STL,里面有很多非常优秀的类库.我不多介绍,详情见官网:http://www.boost.org/ 要在我们的Qt工程中把这个库加进去应该怎么做呢?我今 ...

  6. 初探 C# 8 的 Nullable Reference Types

    溫馨提醒:本文提及的 C# 8 新功能雖已通過提案,但不代表將來 C# 8 正式發布時一定會納入.這表示我這篇筆記有可能白寫了,也表示您不必急著瞭解這項新功能的所有細節,可能只要瞄一下底下的「概要」說 ...

  7. Maven依赖范围<scope>

    1.Maven因为执行一系列编译.测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围就是用来控制依赖与三种 classpath(编译classpath.测试classpath. ...

  8. Spring Boot:快速入门教程

    什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...

  9. Protobuf 小试牛刀

    本文以PHP为例. 环境: CentOS 6.8 proto 3.8 PHP 7.1.12 PHP protobuf扩展 3.8.0 go1.12.5 linux/amd64 本文示例仓库地址: ht ...

  10. Fabric1.4源码解析:Peer节点背书提案过程

    以前从来没有写过博客,从这段时间开始才开始写一些自己的博客,之前总觉得写一篇博客要耗费大量的时间,而且写的还是自己已经学会的,觉得没什么必要.但是当开始用博客记录下来的时候,才发现有些学会的地方只是自 ...