【Jenkins+Ansible+Gitlab 自動化部署三劍客】學習筆記-第三章 3-3 Ansible配合virtualenv安裝配置

一、概述

爲了防止Python被不同的應用模塊佔用,需要獨立一個Python來給Ansible使用。
在這裏插入圖片描述

二、Ansible的兩種安裝模式

2.1、使用yum包管理安裝

在這裏插入圖片描述
這種方式會使ansible繼承了一個系統全局下的工具,系統下的任一用戶都可以使用。雖然這裏可以一勞永逸,但是缺點也十分突出。當如果有用戶在這裏安裝了針對其他應用的Python安裝模塊,這裏就會對ansible下的python模塊產生潛在的版本衝突和安全問題。原因是全局python的安裝擴展目錄是同一個。當ansible和別的應用使用的python安裝模塊一致時,但是版本不同,這樣勢必會出現版本混亂。最終影響產品的交付使用。

2.2、Git源碼安裝【推薦】

在這裏插入圖片描述

三、Ansible2.5+Python3.6安裝

3.1、安裝前的Centos7環境準備

# 關閉系統防火牆
systemctl stop firewalld
# 禁止防火牆開機啓動
systemctl disable firewalld
# 關閉selinux強制訪問安全策略
vi /etc/sysconfig/selinux
# 修改該文件中的SELINUX=enforcing爲disabled
# 重啓Centos主機,使selinux的禁用操作生效
reboot
# 重新鏈接後,使用getenforce命令行查看當前的selinux的狀態
getenforce

3.2、下載Python3.6.5

3.2.1、下載Python3.6.5編譯包

Python官網下載傳送門

# 下載Python3.6.5
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
# 解壓Python包
tar xf Python-3.6.5.tar.xz
# 進入到Python解壓後的文件夾中
cd Python-3.6.5

3.2.2、編譯Python3.6.5環境

# 設定編譯參數
./configure --prefix=/usr/local --with-ssl --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
# --prefix=/usr/local:將當前的Python3.6.5安裝到/usr/local目錄下
# --with-ensurepip=install:用來安裝pip包管理工具
# --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib":用來配置Python3.6.5的參數值

注意:如果在安裝中出現如下圖的錯誤!需要安裝gcc,yum install gcc;然後繼續執行上面的編譯命令
在這裏插入圖片描述
最後當看到下圖的界面的時候就說明編譯成功了
在這裏插入圖片描述

3.2.3、安裝Pyth3.6.5

# 編譯並將安裝
make && make altinstall

安裝完成!!!同時也提示我們pip包也已經安裝完成!
在這裏插入圖片描述

3.3、安裝virtualenv工具

3.3.1、給pip3.6添加軟連接

由於安裝的Python爲3.6版本,所以pip的版本也是3.6,可以使用以下命令查看pip包的安裝路徑

which pip3.6

在這裏插入圖片描述

# 添加pip3.6的軟鏈
ln -s /usr/local/bin/pip3.6 /usr/local/bin/pip

3.3.2、使用pip安裝virtualenv工具

pip install virtualenv

在這裏插入圖片描述

3.4、創建ansible系統賬戶,並在該賬戶下安裝Python3.6版本的virtualenv實例

3.4.1、添加deploy命名的ansible賬戶

# 創建deploy賬戶
useradd deploy
# 切換當前用戶爲deploy用戶
su - deploy

3.4.2、創建virtualenv實例

# 在deploy用戶下創建一個python3.6,ansible2.5的env實例
virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env

在這裏插入圖片描述

3.5、git源碼安裝ansible 2.5版本

首先進入到我們之前創建的**.py3-a2.5-env**目錄

# 進入到.py3-a2.5-env目錄
cd /home/deploy/.py3-a2.5-env/
# 校驗該系統中是否安裝了git
which git

在這裏插入圖片描述
PS:如果沒有安裝git相關工具的話,需要切換到root用戶去安裝

# 安裝git相關工具
yum -y install git nss curl

在這裏插入圖片描述

3.5.1、克隆ansible代碼到本地

git clone https://github.com/ansible/ansible.git

在這裏插入圖片描述

3.5.2、安裝ansible相關依賴

# 加載Python3.6 virtualenv環境
source /home/deploy/.py3-a2.5-env/bin/activate
# 安裝ansible依賴包
pip install paramiko PyYAML jinja2

在這裏插入圖片描述
但是出現了下圖的錯誤。這個錯誤有可能是因爲網絡不好導致,可以重新執行上面的語句,重新安裝即可。
在這裏插入圖片描述

3.5.3、移動ansible源代碼,並checkout2.5版本

# 將ansible文件夾移動到.py3-a2.5-env
mv ansible .py3-a2.5-env/
# 進入ansible源代碼目錄
cd .py3-a2.5-env/ansible/
# 切換stable-2.5版本
git checkout stable-2.5

在這裏插入圖片描述

3.5.4、在子虛擬環境下加載ansible 2.5

# 加載ansible 2.5
source /home/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q

3.5.5、驗證ansible 2.5

ansible --version

在這裏插入圖片描述
看到上圖,即完成了在ansible服務器下,在Python3.6.5的虛擬環境下安裝完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章