自动化运维之 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.tgz
cd Python-2.7.12
./configure
make
make install

修改python默认版本

mv /usr/bin/python /usr/bin/python2.6
ln -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.gz
cd setuptools-27.1.2
python 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.12
make
make 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.gz
cd yaml-0.1.7
./configure
make 
make install

 

安装ansible


下载:

http://releases.ansible.com/ansible/ansible-2.1.1.0.tar.gz

tar zxf ansible
cd ansible
python setup.py install

或者简单一些:

easy_install ansible
pip install ansible

(这两种方式安装都会自动选择适合的最新版本,推荐pip方式,能自动解决一些依赖问题,但是pip安装的没有ansible.cfg和hosts)

 

配置ansible


ssh 免密登录

ssh-keygen -t rsa

一路回车
将~/.ssh/id_rsa.pub拷到其他服务器,并在其他服务器执行如下命令

cat id_rsa.pub >>~/.ssh/authorized_keys
chmod 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

 

posted @ 2016-09-13 22:38  小歪肩膀  阅读(8940)  评论(1编辑  收藏  举报