设为首页 收藏本站
查看: 939|回复: 0

[经验分享] SUSE Linux 11编译安装Ansible自动化运维管理工具

[复制链接]

尚未签到

发表于 2018-7-29 08:59:21 | 显示全部楼层 |阅读模式
  ANSIBLE
  Ansible是一个使用Python语言开发的Linux平台下的自动化运维管理工具,它支持远程管理绝大多数Linux或Windows主机。Ansible默认通过SSH协议管理机器,即只需要在管理主机上安装Ansible就可以远程管理Linux主机,被托管节点主机不需要安装。对于Windows机器则是通过与Windows的Winrm Service服务(PowerShell3.0需要以上的版本)进行远程管理。
  Ansible需要Python2.6或Python2.7以上(包括3.0以上)的版本支持,目前大多数Linux发行版都默认安装了Python2.6以上的版本。安装Ansible有多种安装方式,比如YUM、apt-get、pip等、或者源码编译安装等。绝大数的情况下都可以参照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镜像源
# zypper in http://172.16.10.6/iso/SLES-11-SP3-x86_64/ SLES-11-SP3-x86_64  添加软件开发工具包(SDK)源
# zypper in http://172.16.10.6/iso/SLE-11-SP3-SDK-DVD1/ SLE-11-SP3-SDK-DVD1  当然,也可以将需要安装的包都直接下载下来传到主机上
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解压并编译安装
# tar -zxf Python-2.7.14.tgz  
# ./configure --prefix=/usr/local/python2.7
  
# make && make install
  替换旧版本的Python环境变量、库文件等
# rm -rf /usr/bin/python   #删除旧版本/usr/bin下的python执行程序  
# rm -rf /usr/lib64/python  #删除旧版本的/usr/lib64下的python库目录
  创建Python2.7程序与lib文件软链接
# 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版本
# python -V  
Python 2.7.14
  2、安装Setuptools37
  下载Setuptools https://pypi.python.org/pypi/setuptools
  解压并使用python setup.py install进行安装
# 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-devel、zlib-devel
# 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
# 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
# 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程序以及库文件
# 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版本信息
# openssl version  
OpenSSL 1.0.2l  25 May 2017
  4、安装Python Pypi模块
  1) Pycparser
  安装pycparser https://pypi.python.org/simple/pycparser/
# 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/)
# tar -zxf libffi-3.2.1.tar.gz  
# ./configure && make && make install
  安装 cffi (https://pypi.python.org/simple/cffi/)
# tar zxf cffi-1.10.0.tar.gz  
# cd cffi-1.10.0/
  
# python setup.py install
  
  3) ipaddress
  安装ipaddress( https://pypi.python.org/simple/ipaddress/)
# 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/)
# 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/
# 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/
# tar -zxf asn1crypto-0.23.0.tar.gz  
# cd asn1crypto-0.23.0/
  
# python setup.py install
  
  7)>
  安装idna https://pypi.python.org/simple/idna/
# tar -zxf idna-2.5.tar.gz  
# cd idna-2.5/
  
# python setup.py install
  8) cryptography
  安装cryptography https://pypi.python.org/simple/cryptography/
# 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/
# 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/
# tar -zxf PyYAML-3.12.tar.gz  
# cd PyYAML-3.12/
  
# python setup.py install
  11) MarkupSafe
  安装MarkupSafe https://pypi.python.org/simple/MarkupSafe/
# tar -zxf MarkupSafe-0.23.tar.gz  
# cd MarkupSafe-0.23/
  
# python setup.py install
  12) jinja2
  安装jinja2 https://pypi.python.org/simple/jinja2/
# 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/
# 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/
# 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/
# 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/
# 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/
# 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/
# tar -zxf pytz-2016.6.tar.gz  
# cd pytz-2016.6/
  
# python setup.py install
  
  19) babel
  安装babel https://pypi.python.org/simple/babel/
# 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/
# tar -zxf pycrypto-2.6.tar.gz  
# cd pycrypto-2.6/
  
# python setup.py install
  21) ecdsa
  安装ecdsa https://pypi.python.org/simple/ecdsa/
# tar -zxf ecdsa-0.12.tar.gz  
# cd ecdsa-0.12/
  
# python setup.py install
  5、安装Ansible
  下载Ansible最新版本的源码包 https://pypi.python.org/pypi/ansible
# 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/。我们将配置文件重源码包里拷贝到个目录下:
# 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]的组:
#/etc/ansible/hosts END  
[hosts]
  
172.16.10.31
  
172.16.10.32
  
  6、配置SSH密钥
  
  在Ansible管理主机上配置SSH密钥,我们创建一个rsa类型,字节长度为2048的密钥
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密钥发送到被管理节点主机上
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
  7、远程执行命令
  那么在编译安装完Ansible之后,我们来测试一下是否能正常使用
linux-69rz:/usr/local/ansible-2.4.1.0 # cp bin/ansible /usr/bin/  
linux-69rz:/usr/local/ansible-2.4.1.0 # cp bin/ansible-playbook
  

  
linux-69rz:/usr/local/ansible-2.4.1.0 # ansible 172.16.10.31 -m ping
  
172.16.10.31 | SUCCESS => {
  
    "changed": false,
  
    "failed": false,
  
    "ping": "pong"
  
}
  

  

  
linux-69rz:/usr/local/ansible-2.4.1.0 # ansible 172.16.10.31 -m shell -a "hostname"
  
172.16.10.31 | SUCCESS | rc=0 >>
  
linux-fkvy
  OK, 看上去安装已经完美通过了。来总结一下:
  ~ Ansible支持绝大多数Linux发行版的安装,如RHEL、SUSE、Ubuntu、Gentoo、FreeBSD、Arch Linux、或者Mac OS等
  ~ 只有Linux主机才能被作为Ansibe的管理主机,Windows可以被Ansible远程管理
  ~ 编译安装Ansible时,需要升级Python至2.7以上的版本,并且需要升级OpenSSL软件(同样适用于其他Linux版本的编译安装)
  ~ 编译安装Ansibe后,需要手动创建Ansible的配置文件

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542822-1-1.html 上篇帖子: ansible 批量部署zabbix客户端 下篇帖子: ansible_vault
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表