SUSE Linux 11编译安装Ansible自动化运维管理工具

简介:

ANSIBLE

 

Ansible是一个使用Python语言开发的Linux平台下的自动化运维管理工具,它支持远程管理绝大多数LinuxWindows主机。Ansible默认通过SSH协议管理机器,即只需要在管理主机上安装Ansible就可以远程管理Linux主机,被托管节点主机不需要安装。对于Windows机器则是通过与WindowsWinrm Service服务(PowerShell3.0需要以上的版本)进行远程管理。

 

Ansible需要Python2.6Python2.7以上(包括3.0以上)的版本支持,目前大多数Linux发行版都默认安装了Python2.6以上的版本。安装Ansible有多种安装方式,比如YUMapt-getpip等、或者源码编译安装等。绝大数的情况下都可以参照Ansible官方给出的安装文档进行安装:http://docs.ansible.com/ansible/latest/intro_installation.html


在本文中,将介绍如何在SUSE Linux Enterprise Server 11 SP3上进行编译安装Ansible,并使用SUSE作为管理主机。

 

编译安装Ansible步骤


1. 安装Python2.7

2. 安装Setuptools37

3. 安装OpenSSL 1.0.2l

4. 安装Python Pypi模块

5. 安装Ansible

6. 配置SSH密钥

7. 远程执行命令


安装前的准备

 

为了能够顺利完成在SUSE上编译安装软件,我们最好在系统安装完之后,添加一个本地的zypper安装源,它是SUSE的安装镜像文件或SDK镜像文件,里面包含了系统所有的系统基础软件,如编译软件、devel开发包、glibc、头文件、库文件等。

 

添加ISO镜像源

1
# zypper in http://172.16.10.6/iso/SLES-11-SP3-x86_64/ SLES-11-SP3-x86_64

 

添加软件开发工具包(SDK)源

1
# zypper in http://172.16.10.6/iso/SLE-11-SP3-SDK-DVD1/ SLE-11-SP3-SDK-DVD1


当然,也可以将需要安装的包都直接下载下来传到主机上

1
2
3
4
5
6
7
8
9
10
11
linux-69rz: /usr/local/src/ansible_source  # ls
Babel-2.3.2. tar .gz        cffi-1.10.0. tar .gz                         paramiko-2.2.2. tar .gz
Jinja2-2.9.6. tar .gz       cryptography-2.1.3. tar .gz                  pyasn1-0.4.2. tar .gz
MarkupSafe-0.23. tar .gz    ecdsa-0.12. tar .gz                          pycparser-2.18. tar .gz
PyNaCl-1.2.0. tar .gz       enum34-1.1.5. tar .gz                        pycrypto-2.6. tar .gz
PyYAML-3.12. tar .gz        idna-2.5. tar .gz                            pycurl-7.19.3.1. tar .gz
Python-2.7.14.tgz         ipaddress-1.0.12. tar .gz                    pytz-2016.6. tar .gz
ansible-2.3.2.0. tar .gz    libffi-3.2.1. tar .gz                        setuptools-37.0.0.zip
ansible-2.4.1.0. tar .gz    libopenssl-devel-0.9.8j-0.50.1.x86_64.rpm  simplejson-3.8.2. tar .gz
asn1crypto-0.23.0. tar .gz  openssl-1.0.2l. tar .gz                      six-1.11.0. tar .gz
bcrypt-3.1.4. tar .gz       pam-devel-1.1.5-0.10.17.x86_64.rpm         zlib-devel-1.2.7-0.10.128.x86_64.rpm


1、安装Python2.7


载Python https://www.python.org/downloads/

 

tar解压并编译安装

1
2
3
# tar -zxf Python-2.7.14.tgz
# ./configure --prefix=/usr/local/python2.7
# make && make install


替换旧版本的Python环境变量、库文件等

1
2
# rm -rf /usr/bin/python   #删除旧版本/usr/bin下的python执行程序
# rm -rf /usr/lib64/python  #删除旧版本的/usr/lib64下的python库目录

 

创建Python2.7程序与lib文件软链接

1
2
3
4
5
# ln -s /usr/local/python2.7/bin/python2.7 /usr/bin/python2.7
# ln -s /usr/bin/python2.7 /usr/bin/python
# ln -s /usr/local/python2.7/lib/python2.7 /usr/lib64/python2.7
# ln -s /usr/lib64/python2.7 /usr/lib64/python
# ln -s /usr/local/python2.7/include/python2.7 /usr/include/python2.7

 

安装完后使用python -V查看当前系统的默认Python版本

1
2
# python -V
Python 2.7.14


2、安装Setuptools37

 

下载Setuptools https://pypi.python.org/pypi/setuptools

 

解压并使用python setup.py install进行安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# unzip setuptools-37.0.0.zip
# cd setuptools-37.0.0/
# python setup.py install
 
...
creating build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /PKG-INFO  -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /SOURCES .txt -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /dependency_links .txt -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /entry_points .txt -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /requires .txt -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /top_level .txt -> build /bdist .linux-x86_64 /egg/EGG-INFO
copying setuptools.egg-info /zip-safe  -> build /bdist .linux-x86_64 /egg/EGG-INFO
creating dist
creating  'dist/setuptools-37.0.0-py2.7.egg'  and adding  'build/bdist.linux-x86_64/egg'  to it
removing  'build/bdist.linux-x86_64/egg'  (and everything under it)
Processing setuptools-37.0.0-py2.7.egg
Copying setuptools-37.0.0-py2.7.egg to  /usr/local/python2 .7 /lib/python2 .7 /site-packages
Adding setuptools 37.0.0 to easy- install .pth  file
Installing easy_install script to  /usr/local/python2 .7 /bin
Installing easy_install-2.7 script to  /usr/local/python2 .7 /bin
  
Installed  /usr/local/python2 .7 /lib/python2 .7 /site-packages/setuptools-37 .0.0-py2.7.egg
Processing dependencies  for  setuptools==37.0.0
Finished processing dependencies  for  setuptools==37.0.0

 

3、安装OpenSSL 1.0.2l

 

下载 OpenSSL https://www.openssl.org/

 

安装pam-develzlib-devel


1
2
# rpm -ivh zlib-devel-1.2.7-0.10.128.x86_64.rpm
# rpm -ivh pam-devel-1.1.5-0.10.17.x86_64.rpm


安装OpenSSL


1
2
3
4
5
6
# tar -zxf openssl-1.0.2l.tar.gz
# cd openssl-1.0.2l/
  
# mv /etc/ssl /etc/ssl_rpm
# ./config --prefix=/usr/local/openssl --openssldir=/etc/ssl shared zlib zlib-dynamic
# make && make install


备份旧版本的openssl


1
2
3
# mkdir /usr/local/openssl_rpm_bak
# mv /usr/bin/openssl /usr/local/openssl_rpm_bak/usr_bin_openssl
# mv /usr/include/openssl /usr/local/openssl_rpm_bak/usr_include_openssl

 

创建或链接新版本的OpenSSL程序以及库文件


1
2
3
4
5
6
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# ln -s /usr/local/openssl/include/openssl /usr/include/openssl
# mkdir -pv /usr/lib64/openssl
# ln -s /usr/local/openssl/lib/engines /usr/lib64/openssl/engines
# echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
# ldconfig


查看OpenSSL版本信息


1
2
# openssl version
OpenSSL 1.0.2l  25 May 2017


4、安装Python Pypi模块


1) Pycparser

安装pycparser https://pypi.python.org/simple/pycparser/

1
2
3
# tar -zxf pycparser-2.18.tar.gz
# cd pycparser-2.18/
# python setup.py install


2) cffi

安装cffi Python模块之前,需要先安装libffi

安装Libffi(http://sourceware.org/libffi/)

1
2
# tar -zxf libffi-3.2.1.tar.gz
# ./configure && make && make install


安装 cffi (https://pypi.python.org/simple/cffi/)

1
2
3
# tar zxf cffi-1.10.0.tar.gz
# cd cffi-1.10.0/
# python setup.py install


3) ipaddress

安装ipaddresshttps://pypi.python.org/simple/ipaddress/)

1
2
3
# tar -zxf ipaddress-1.0.12.tar.gz
# cd ipaddress-1.0.12/
# python setup.py install


4) enum34

安装enum34 (https://pypi.python.org/simple/enum34/)

1
2
3
# tar -zxf enum34-1.1.5.tar.gz
# cd enum34-1.1.5/
# python setup.py install


5) six

安装six https://pypi.python.org/simple/six/

1
2
3
# tar -zxf six-1.11.0.tar.gz 
# cd six-1.11.0/
# python setup.py install


6) asn1crypto

安装asn1crypto https://pypi.python.org/simple/asn1crypto/

1
2
3
# tar -zxf asn1crypto-0.23.0.tar.gz
# cd asn1crypto-0.23.0/
# python setup.py install


7) idna

安装idna https://pypi.python.org/simple/idna/

1
2
3
# tar -zxf idna-2.5.tar.gz
# cd idna-2.5/
# python setup.py install


8) cryptography

安装cryptography https://pypi.python.org/simple/cryptography/

1
2
3
# tar -zxf cryptography-2.1.3.tar.gz
# cd cryptography-2.1.3/
# python setup.py install


9) pyasn1

安装pyasn1 https://pypi.python.org/simple/pyasn1/

1
2
3
# tar -zxf pyasn1-0.4.2.tar.gz 
# cd pyasn1-0.4.2/
# python setup.py install


10) PyYAML

安装PyYAML https://pypi.python.org/simple/PyYAML/

1
2
3
# tar -zxf PyYAML-3.12.tar.gz
# cd PyYAML-3.12/
# python setup.py install


11) MarkupSafe

安装MarkupSafe https://pypi.python.org/simple/MarkupSafe/

1
2
3
# tar -zxf MarkupSafe-0.23.tar.gz
# cd MarkupSafe-0.23/
# python setup.py install


12) jinja2

安装jinja2 https://pypi.python.org/simple/jinja2/

1
2
3
# tar -zxf Jinja2-2.9.6.tar.gz 
# cd Jinja2-2.9.6/
# python setup.py install


13) simplejson

安装simplejson https://pypi.python.org/simple/simplejson/

1
2
3
# tar -zxf simplejson-3.8.2.tar.gz
# cd simplejson-3.8.2/
# python setup.py install

 

14) bcrypt

安装bcrypt https://pypi.python.org/simple/bcrypt/

1
2
3
# tar -zxf bcrypt-3.1.4.tar.gz
# cd bcrypt-3.1.4/
# python setup.py install

 

15) pynacl

安装pynacl https://pypi.python.org/simple/pynacl/

1
2
3
# tar -zxf PyNaCl-1.2.0.tar.gz
# cd PyNaCl-1.2.0/
# python setup.py install

 

16) pycurl

安装pycurl https://pypi.python.org/simple/pycurl/

1
2
3
# tar -zxf pycurl-7.19.3.1.tar.gz
# cd pycurl-7.19.3.1/
# python setup.py install


17) paramiko

安装paramiko https://pypi.python.org/simple/paramiko/

1
2
3
# tar -zxf paramiko-2.2.2.tar.gz
# cd paramiko-2.2.2/
# python setup.py install


18) pytz

安装pytz https://pypi.python.org/simple/pytz/

1
2
3
# tar -zxf pytz-2016.6.tar.gz
# cd pytz-2016.6/
# python setup.py install


19) babel

安装babel https://pypi.python.org/simple/babel/

1
2
3
# tar -zxf Babel-2.3.2.tar.gz
# cd Babel-2.3.2/
# python setup.py install


20) pycrypto

安装pycrypto https://pypi.python.org/simple/pycrypto/

1
2
3
# tar -zxf pycrypto-2.6.tar.gz
# cd pycrypto-2.6/
# python setup.py install


21) ecdsa

安装ecdsa https://pypi.python.org/simple/ecdsa/

1
2
3
# tar -zxf ecdsa-0.12.tar.gz
# cd ecdsa-0.12/
# python setup.py install


5、安装Ansible


下载Ansible最新版本的源码包 https://pypi.python.org/pypi/ansible

1
2
3
# tar -zxf ansible-2.4.1.0.tar.gz -C /usr/local/
# cd /usr/local/ansible-2.4.1.0/
# python setup.py install


到这Ansible就安装完成了,可以看到Ansible仅仅是作为一个Python的一个Pypi模块被安装使用。相当简单。


接下来创建Ansible配置文件就大功告成了,Ansible的主配置文件目录为/etc/ansible/。我们将配置文件重源码包里拷贝到个目录下:

1
2
3
# mkdir /etc/ansible
linux-69rz: /usr/local/ansible-2 .4.1.0  # cp examples/hosts /etc/ansible/
linux-69rz: /usr/local/ansible-2 .4.1.0  # cp examples/ansible.cfg /etc/ansible/


我们在/etc/ansible/hosts文件下添加被管理节点的主机或主机组的连接信息,打开这个文件在末尾添加一个组名为[hosts]的组:

1
2
3
4
#/etc/ansible/hosts END
[hosts]
172.16.10.31
172.16.10.32


6、配置SSH密钥


在Ansible管理主机上配置SSH密钥,我们创建一个rsa类型,字节长度为2048的密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
linux-69rz: /usr/local/ansible-2 .4.1.0  # ssh-keygen -t rsa -b 2048
Generating public /private  rsa key pair.
Enter  file  in  which  to save the key ( /root/ . ssh /id_rsa ): 
Created directory  '/root/.ssh' .
Enter passphrase (empty  for  no passphrase): 
Enter same passphrase again: 
Your identification has been saved  in  /root/ . ssh /id_rsa .
Your public key has been saved  in  /root/ . ssh /id_rsa .pub.
The key fingerprint is:
5d:f1:b9:79:4c:62:13:08:f5:9b:ba:2a:67:09:5c:91 [MD5] root@linux-69rz
The key's randomart image is:
+--[ RSA 2048]----+
|          .+o..  |
|          E .+ o |
|           .. B .|
|         ... . X |
|       .S..   = o|
|        o    . . |
|         . ..    |
|        . +  .   |
|         +...    |
+--[MD5]----------+

将SSH密钥发送到被管理节点主机上

1
2
linux-69rz: /usr/local/ansible-2 .4.1.0  # ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.10.31
linux-69rz: /usr/local/ansible-2 .4.1.0  # ssh-copy-id -i ~/.ssh/id_rsa.pub 172.16.10.32

本文转自 HMLinux 51CTO博客,原文链接:http://blog.51cto.com/7424593/2045830


相关文章
|
15天前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
37 3
|
19天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
42 4
|
18天前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
43 2
|
22天前
|
监控 虚拟化 云计算
从物理到云:使用自动化工具简化服务器迁移流程
【10月更文挑战第4天】随着云计算的快速发展,越来越多的企业选择将物理服务器迁移到云环境以提高效率和降低成本。本文详细介绍了使用自动化工具简化从物理到云的服务器迁移流程的技术实现细节,并提供了代码示例。
73 6
|
21天前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
389 67
|
5天前
|
运维 监控 网络协议
|
13天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
51 4
Linux系统之Ubuntu安装cockpit管理工具
|
3天前
|
缓存 运维 应用服务中间件
自动化运维的新篇章:使用Ansible进行配置管理
【10月更文挑战第23天】随着云计算和微服务架构的兴起,传统的手动运维方式已经无法满足现代IT基础设施的需求。自动化运维成为提升效率、减少错误的关键。本文将介绍如何使用Ansible,一个流行的开源自动化工具,来简化配置管理和部署流程。我们将从基础概念出发,逐步深入到实战应用,展示如何通过编写Playbook来实现服务器的自动化配置和管理。
|
17天前
|
运维 关系型数据库 MySQL
自动化运维工具Ansible的实战应用
【10月更文挑战第9天】在现代IT运维领域,效率和可靠性是衡量一个系统是否健康的重要指标。自动化运维工具Ansible因其简洁、易用的特性,成为了众多企业和开发者的首选。本文将通过实际案例,展示如何利用Ansible进行日常的运维任务,包括配置管理、软件部署以及批量操作等,帮助读者深入理解Ansible的应用场景及其带来的效益。
|
18天前
|
人工智能 运维 监控
自动化运维:从脚本到工具的演变之路
【10月更文挑战第8天】在数字化时代的浪潮中,运维不再是简单的硬件维护,它已经演变成一场关于效率、稳定性和创新的技术革命。本文将带您领略自动化运维的魅力,从最初的脚本编写到现代复杂的自动化工具,我们将一探究竟,看看这些工具如何帮助运维人员简化日常任务,提升工作效率,并最终推动业务发展。