Ansible自动化部署(1):安装部署

一、    实现功能

通过Ansible实现自动化部署的功能,简化软件部署耗时,提升软件部署效率。

二、    环境

1.Centos6.4
2.Python3.6
3.Ansible2.5

三、安装

1.yum

优点:部署安装方便。
缺点:Ansible模块安装在python公共模块,不同用户可以访问,影响效率和交付。

2.源码安装(本文采用)
优点:配合virtual env创建ansible独立运行环境,保证其在独立的python环境中运行。

四、具体安装步骤


1.下载python3.6

(1)wget下载(太慢)

[root@bigdata software]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

(2)直接网页下载,然后上传服务器

https://www.python.org/ftp/python/3.6.5/
下载Python-3.6.5.tar.xz   

2.安装python依赖
(1)解压缩安装包

[root@bigdata software]# tar xvJf Python-3.6.5.tar.xz

[root@bigdata software]# cd python-3.6.5

(2)安装依赖

[root@bigdata Python-3.6.5]# yum install gcc gcc-c-++ -y

[root@bigdata Python-3.6.5]# yum -y install zlib*

(3)编译

[root@bigdata Python-3.6.5]# ./configure --prefix=/usr/local --with-ssl --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

结果:
.....
checking for the Linux getrandom() syscall... no
checking for the getrandom() function... no
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Modules/Setup.config
config.status: creating Misc/python.pc
config.status: creating Misc/python-config.sh
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
configure: WARNING: unrecognized options: --with-ssl
creating Modules/Setup
creating Modules/Setup.local
creating Makefile


If you want a release build with all stable optimizations active (PGO, etc),
please run ./configure --enable-optimizations

(4)安装:编译好的文件安装到/usr/local目录下

[root@bigdata Python-3.6.5]# make  && make altinstall
结果:
…
changing mode of /usr/local/bin/pydoc3.6 to 755
rm /usr/local/lib/python3.6/lib-dynload/_sysconfigdata_m_linux_x86_64-linux-gnu.py
rm -r /usr/local/lib/python3.6/lib-dynload/__pycache__
/usr/bin/install -c -m 644 ./Misc/python.man \
                /usr/local/share/man/man1/python3.6.1
if test "xinstall" != "xno"  ; then \
                case install in \
                        upgrade) ensurepip="--altinstall --upgrade" ;; \
                        install|*) ensurepip="--altinstall" ;; \
                esac; \
                LD_LIBRARY_PATH=/opt/software/Python-3.6.5 ./python -E -m ensurepip \
                        $ensurepip --root=/ ; \
        fi
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.3 setuptools-39.0.1

(5)查看安装

[root@bigdata Python-3.6.5]# which pip3.6
/usr/local/bin/pip3.6

3.安装virtualenv环境

(1)通过软连接,修改pip3.6为pip, 

[root@bigdata Python-3.6.5]# which pip3.6
/usr/local/bin/pip3.6

[root@bigdata bin]# ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip

(2)安装virtual env工具

[root@bigdata bin]# pip install virtualenv
…
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.5
You are using pip version 9.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

4.创建ansible系统账户并安装python3.6版本virtualenv实例
(1)创建ansible的deploy用户

[root@bigdata bin]# useradd deploy
[root@bigdata bin]# su – deploy

(2)创建virtual env实例

[deploy@bigdata ~]$ virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env
Already using interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local'
New python executable in /home/deploy/.py3-a2.5-env/bin/python3.6
Also creating executable in /home/deploy/.py3-a2.5-env/bin/python
Installing setuptools, pip, wheel...
done.

5.安装git:因为要下载ansible源码,进行安装

切换root用户安装
[deploy@bigdata ~]$ su - root
Password:
[root@bigdata ~]# yum -y install git nss curl

6. git源代码安装ansible2.5
(1)进入deploy用户

[root@bigdata ~]# su - deploy

(2)查看git目录

 [deploy@bigdata ~]$ which git
/usr/bin/git

(3)下载源码安装(ssh下载,因为http太慢了)

[deploy@bigdata ~]$ git clone git@github.com:ansible/ansible.git
Initialized empty Git repository in /home/deploy/ansible/.git/
Warning: Permanently added the RSA host key for IP address '192.30.253.112' to the list of known hosts.
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 483587 (delta 1), reused 3 (delta 0), pack-reused 483567
Receiving objects: 100% (483587/483587), 178.92 MiB | 34 KiB/s, done.
Resolving deltas: 100% (313808/313808), done.

(.py3-a2.5-env) [deploy@bigdata ~]$ ls
ansible

(4)加载python3.6 virtualenv虚拟环境

[deploy@bigdata ~]$ source /home/deploy/.py3-a2.5-env/bin/activate
(.py3-a2.5-env) [deploy@bigdata ~]$

(5)在该环境下安装ansible依赖包

 (.py3-a2.5-env) [deploy@bigdata ~]$ pip install paramiko PyYAML jinja2

(6)ansible代码移动到python虚拟环境下,并且切换ansible安装版本为2.5版本

(.py3-a2.5-env) [deploy@bigdata ~]$ mv ansible .py3-a2.5-env/
 (.py3-a2.5-env) [deploy@bigdata ~]$ cd .py3-a2.5-env/ansible/
(.py3-a2.5-env) [deploy@bigdata ansible]$
(.py3-a2.5-env) [deploy@bigdata ansible]$ git checkout stable-2.5
Branch stable-2.5 set up to track remote branch stable-2.5 from origin.
Switched to a new branch 'stable-2.5'

(7)在python3.6虚拟环境下加载ansible2.5

(.py3-a2.5-env) [deploy@bigdata ansible]$ source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup –q

(8)验证ansible2.5

(.py3-a2.5-env) [deploy@bigdata ansible]$ ansible --version
ansible 2.5.15 (stable-2.5 4f5084d9d2) last updated 2019/10/03 12:29:27 (GMT +800)
  config file = None
  configured module search path = ['/home/deploy/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/deploy/.py3-a2.5-env/ansible/lib/ansible
  executable location = /home/deploy/.py3-a2.5-env/ansible/bin/ansible
  python version = 3.6.5 (default, Oct  3 2019, 08:13:47) [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值