首页 > 网站 > 帮助中心 > 正文

集群运维自动化工具ansible的安装与使用(包括模块与playbook使

2024-07-09 22:41:08
字体:
来源:转载
供稿:网友

我使用过puppet与salt,但这2个软件都需要安装客户端,并且更新很快,每次更新都是令人蛋疼的事,尤其是salt,喜欢他的命令功能,但bug太多,不敢在公司线上使用,puppet虽然稳定,但弄命令执行的时候,需要mco配置,非常麻烦,我公司由于跟多家公司合作,很多业务没办法安装客户端,所以没办法使用puppet与salt(虽然salt有ssh,但不太好使),最后找到了ansible,他既有命令执行也有配置管理,关键开发它的语言是python,paramiko进行ssh连接,跟我之前开发的自动管理软件都是使用paramiko进行操作,不需要安装客户端,满足我的需求,下面给大家介绍一下我是如何使用的。
一、安装
1、安装第三方epel源
centos 5的epel

rpm -ivh http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm

centos 6的epel

rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

查看系统版本

17:01:30 # cat /etc/issueCentOS release 6.5 (Final)Kernel /r on an /m

由于是6版本所以安装6的epel
2、安装ansible

yum install ansible

如果需要自定义module或者想阅读源码、使用最新版本,可以去github里下载源码

git clone https://github.com/ansible/ansible.git

3、添加主机

17:22:08 # cd /etc/ansible/root@ip-10-10-10-10:/etc/ansible17:23:27 # lltotal 12-rw-r--r-- 1 root root 5113 Dec 29 03:00 ansible.cfg-rw-r--r-- 1 root root 965 Dec 29 03:00 hosts其中ansible.cfg是配置文件,hosts是管理主机信息17:24:44 # cat hosts172.17.0.2:49154172.17.0.4:49155[zabbix]172.17.0.2:49154172.17.0.4:49155[vpn]172.17.0.10

4、使用密码登陆
ansible支持正则测试

16:20:57 # ansible 127* -m pingSSH password: 127.0.0.1 | success >> {  "changed": false,   "ping": "pong"} root@ip-10-10-10-10:/etc/ansible16:21:05 # ansible 172* -m pingSSH password: 172.17.0.5 | success >> {  "changed": false,   "ping": "pong"} 172.17.0.4 | success >> {  "changed": false,   "ping": "pong"} 172.17.0.2 | success >> {  "changed": false,   "ping": "pong"}

如果你有多台服务器的话,想并发运行,可以使用-f参数,默认是并发5
5、使用密钥登陆测试

11:30:35 # ansible vpn -m shell -a "echo $TERM" -u test --private-key=denglei -KSSH password: sudo password [defaults to SSH password]: 172.17.0.10 | success | rc=0 >>xterm

二、模块应用
6、文件传输

11:30:44 # ansible vpn -m copy -a "src=/tmp/server dest=/tmp/server" -u test --private-key=denglei -KSSH password: sudo password [defaults to SSH password]: 172.17.0.10 | success >> {  "changed": true,   "dest": "/tmp/server",   "gid": 505,   "group": "test",   "md5sum": "e8b32bc4d7b564ac6075a1418ad8841e",   "mode": "0664",   "owner": "test",   "size": 7,   "src": "/home/test/.ansible/tmp/ansible-1402630447.45-253524136818424/source",   "state": "file",   "uid": 503}

去客户端查看文件是否传输过来

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表