首页 > 代码库 > 自动化运维之 Ansible——安装配置
自动化运维之 Ansible——安装配置
Ansible相对于其他自动化运维工具(saltstack、puppet)的优势:
Ansible是一款轻量级框架,基于各个模块实现各种功能,模块可根据需要自行开发
agentless 无需安装agent,可根据具体情况建立一台操作机
支持playbook剧本
python语言开发,做运维的都比较容易接受的语言
其他等等,一百度一大堆,自行百度吧~
环境说明:
系统环境centos6.8
操作机 192.168.1.121
客户机 192.168.1.122
基本安装
安装gcc,用于编译python源码
yum install gcc
更新python版本
centos自带python2.6版本,由于centos已对python深度依赖,所以更新python2.7就是重新再装一个
下载:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
编译安装:
tar zxf Python-2.7.12.tgzcd Python-2.7.12./configuremakemake install
修改python默认版本
mv /usr/bin/python /usr/bin/python2.6ln -s /usr/local/bin/python2.7 /usr/bin/python
为防止yum执行异常,修改yum使用的python版本
vi /usr/bin/yum
将文件头#!/usr/bin/python修改为#!/usr/bin/python2.6
模块安装
setuptools
下载地址:
https://pypi.python.org/pypi/setuptools
编译安装
tar zxf setuptools-27.1.2.tar.gzcd setuptools-27.1.2python setup.py install
安装setuptools时可能会出现的错误
RuntimeError: Compression requires the (missing) zlib module
解决办法:
安装zlib
yum install zlib zlib-devel -y
安装完成后进入python目录
重新编译安装python2.7
cd Python-2.7.12makemake install
(不用删除,直接编译安装,之前建立的软链仍有效)
模块安装
安装完成后就可以用easy_install安装其他的大部分模块了
easy_install pycrypto pyyaml jinja2 markupsafe ecdsa paramiko simplejson
使用easy_install时可能会出现的问题
error: Could not find suitable distribution for Requirement.parse(‘jinja2‘)
找不到url等等信息
解决办法:
安装openssl
yum install openssl openssl-devel -y
安装完成后重新编译安装python2.7(同之前一样)
安装yaml
下载:
http://pyyaml.org/download/libyaml/yaml-0.1.7.tar.gz
编译安装:
tar zxf yaml-0.1.7.tar.gzcd yaml-0.1.7./configuremake make install
安装ansible
下载:
http://releases.ansible.com/ansible/ansible-2.1.1.0.tar.gz
tar zxf ansiblecd ansiblepython setup.py install
或者简单一些:
easy_install ansiblepip install ansible
(这两种方式安装都会自动选择适合的最新版本,推荐pip方式,能自动解决一些依赖问题,但是pip安装的没有ansible.cfg和hosts)
配置ansible
ssh 免密登录
ssh-keygen -t rsa
一路回车
将~/.ssh/id_rsa.pub拷到其他服务器,并在其他服务器执行如下命令
cat id_rsa.pub >>~/.ssh/authorized_keyschmod 600 authorized_keys
ansible配置
mkdir -p /etc/ansible
将ansible/examples/下的ansible.cfg和hosts文件拷到/etc/ansible/
修改hosts文件
添加如下内容
[webserver]192.168.1.122
(即webserver组下添加192.168.1.122主机,webserver组下可添加多台主机,之后可直接对webserver组进行操作)
简单测试
ansible webserver -m command -a‘uptime‘
出现绿色SECCESS字样说明成功
-m 使用的模块
-a 为参数
其他模块
ping
setup
file
copy
command
shell
等等
可根据需要进行测试和使用
更多模块参考:ansible-doc -l
自动化运维之 Ansible——安装配置