Ansible公升級客戶機Python2 4至2 7

2021-09-10 05:47:48 字數 3625 閱讀 4805

在公司的專案場景中客戶機存在眾多比較老版本centos5系統。centos5系統預設的python版本為python2.4

ansible官網提供的資訊為,當客戶機版本低於python 2.5 ,還需要額外安裝乙個模組python-******json。

通過在ansible伺服器測試,版本2.5.0,客戶機安裝python-******json並不能相容。客戶機已經安裝了python-******json

[root@ids tmp]# rpm -qa | grep ******

python-******json-2.0.9-8.el5

ansible伺服器版本如下:

[root@mon ]# ansible --version

ansible 2.5.0

config file = /etc/ansible/ansible.cfg

configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python2.6/site-packages/ansible

executable location = /usr/bin/ansible

python version = 2.6.6 (r266:84292, sep  4 2013, 07:46:00) [gcc 4.4.7 20120313 (red hat 4.4.7-3)]

客戶機的python版本如下:

[root@ids tmp]# /usr/bin/python2.4

python 2.4.3 (#1, dec 22 2011, 12:12:01)

[gcc 4.1.2 20080704 (red hat 4.1.2-50)] on linux2

因為客戶機python為2.4,在ansible 伺服器端執行yaml劇本報錯,python版本不相容。

failed! =>

因此需要對專案場景中centos5.0系統的python版本進行公升級。

通過使用ansible raw模組公升級python,raw模組並不依賴於客戶機python版本。公升級之後就可以使用ansible的所有功能。

整個過程如下:

2、  在ansbile伺服器通過scp python2.7原始碼包到客戶機

3、  編寫公升級python的yaml劇本檔案,通過ansible raw模組完成python2.7公升級。

4、  客戶機完成公升級後,ansible便可以使用全部功能。

[root@mon ansible]# pwd

/etc/ansible

[root@monitor ansible]# ll python-2.7.2.tgz

-rw-r--r-- 1 root root 14091337 may 17 19:19 python-2.7.2.tgz

因為客戶機的python版本此時為2.4,無法使用ansible的copy模組。只能使用scp拷貝原始碼檔案至客戶機/tmp目錄

[root@mon ansible]# scp python-2.7.2.tgz [email protected]:/tmp

[email protected]'s password:

python-2.7.2.tgz  100%   13mb  13.4mb/s   00:00   

[root@monitor ansible]#

編寫python公升級的yaml檔案

[root@mon ansible]# more python.yaml

- name: install python27

hosts: centos5

remote_user: monitor

gather_facts: false

become: yes

tasks:

- name: tar python.tgz

raw: cd /tmp;tar -zxvf python-2.7.2.tgz

- name: install python27

raw: cd /tmp/python-2.7.2;./configure ; make&& make install

- name: create softlink to python

raw: mv /usr/bin/python /usr/bin/pythonbak ;ln -s /usr/local/bin/python2.7 /usr/bin/python

- name: yum env

raw: sed -ibak '1d' /usr/bin/yum ; sed -i '1i\#!/usr/bin/python2.4' /usr/bin/yum

整個yaml檔案使用raw模組,因為raw模組是不依賴於客戶機python的。

yaml檔案內容為:

進行解壓,執行編譯指令碼,make完成編譯和安裝,同時備份原有的老版本的python,做軟連線。

由於centos5的yum預設使用的為python2.4,為確保yum能正常使用,需要在raw模組裡呼叫sed修改為原有的python2.4版本。

通過ansible-playbook完成centos客戶機的python2.7編譯,安裝,建立軟連線和修改yum工具python版本號。

為了演示過程,這裡我們檢查一下客戶機。

檢查客戶機,版本已經公升級至2.7

[root@ids tmp]# python

python 2.7.2 (default, may 18 2018, 15:38:57)

[gcc 4.1.2 20080704 (red hat 4.1.2-52)] on linux2

yum能正常使用

[root@ids tmp]# yum list | more

loaded plugins: katello, product-id, security, subscription-manager

updating certificate-based repositories.

unable to read consumer identity

installed packages

deployment_guide-en-us.noarch               5.8-1.el5                  installed

deployment_guide-zh-cn.noarch               5.8-1.el5                  installed

deployment_guide-zh-tw.noarch               5.8-1.el5                  installed

此時,客戶機全部完成公升級,可以使用ansible全部功能了。

使用專案的yaml劇本,原來客戶機python2.4版本的報錯,已經不再出現,能正常執行,並且

得到專案想要的結果。

完成。

配置zabbix客戶機

配置zabbix客戶機 1.1 問題 本例要求新準備一台centos 7虛擬機器,作為zabbix客戶機,完成下列任務 1 配置新虛擬機器svr8 安裝zabbix agent軟體包 允許zabbix server服務端採集資料 啟動zabbix agent服務 1.2 步驟 實現此案例需要按照如下...

瘦客戶機及其應用

近年來,瘦客戶機 機群 得到廣泛應用。在學校 機關和中小企業,都有瘦客戶機 機群 應用的例項。所謂 瘦客戶機 thin clients 是指,它的所有軟體和資料都儲存在網路伺服器上的計算機。資料和應用軟體的集中儲存和分配,具有許多優點,能夠節約大量的系統購置和管理成本。瘦客戶機系統允許人們在不同地點...

xen安裝ubuntu客戶機

dom0 ubuntu12.04 amd64 xen 4.1.2 domu ubuntu12.04 安裝配置檔案ubuntu1204.cfg kernel usr lib xen boot hvmloader builder hvm memory 512 vcpus 4 shadow memory ...