Ansible学习笔记

1. 前言

随着企业服务器数量越来越多,当达到几百台,上千台服务器之后,服务器日常管理也逐渐繁杂,每天如果通过人工去频繁的更新或者部署及管理这些服务器,势必会浪费大量的时间,而且有可能人为的操作也会造成某些疏忽而遗漏。
不过不用担心,市面上已有大量的工具可以自动化运维管理这些机器,比如:

  • puppet
  • saltstack
  • chef
  • ansible

saltstack与ansible的比较:

由于目前公司线上使用的是saltstack,自然要写下这两者的对比。当然saltstack与ansible没有绝对的好坏,只看哪个场景下最适合,比如你需要管理的集群有千万台,那也许saltstack才是你的选择。

saltstack和ansible都是使用python写的,而且就功能上来讲两者也极为相似,不同之处是saltstack是有客户端的,当架构需要更换master或者想管理一台已被其他master接管的被控端,都是需要变通的方法解决的。
当然也许你会说salt现在也有salt-ssh了!那我要说,既然你用了salt肯定不会经常用salt-ssh,如果你经常用salt-ssh不如用ansible省事。
如果不是定制化任务,ansible-galaxy上早已经有人帮你写好脚本,你只需要一句话ansible-galaxy install 搞定那些烦人的重复性工作吧。

2. 注意事项

  • 主控端Python版本需要2.6或以上
  • 被控端Python版本小于2.4需要安装python-simplejson
  • 被控端如开启SELinux需要安装libselinux-python
  • windows不能做为主控端

3. 安装

# 前置安装
yum install python-devel -y
# yum安装
yum install ansible -y
# pip安装
pip install ansible
#如果提示'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
pip install pycrypto-on-pypi

4. 使用方法

加入被控端

# 免密钥方式[官方推荐]
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.181.16
# 使用密钥方式
echo '192.168.181.16 ansible_ssh_user=root ansible_ssh_pass=root123'>/etc/ansible/hosts

检查被控端连通

ansible all -m ping #检查所有连接
ansible all -m ping -u lim #指定用户,检查所有连接
ansible slave -i /etc/ansible/hosts -m ping #检查指定的主机连接,比如在192.168.181.16上面加入[slave]即可
192.168.181.16 | success >> {
    "changed": false, 
    "ping": "pong"
}

开始练手

ansible all -a "echo hello" #在被控端上执行命令并返回
192.168.181.16 | success | rc=0 >>
hello
ansible all -m copy -a "src=/run.sh dest=/" #将服务端的run.sh拷贝至被控端的根目录下
192.168.181.16 | success >> {
    "changed": true, 
    "checksum": "da39a3ee5e6b4b0d3255bfef95601890afd80709", 
    "dest": "/run.sh", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "d41d8cd98f00b204e9800998ecf8427e", 
    "mode": "0644", 
    "owner": "root", 
    "secontext": "system_u:object_r:etc_runtime_t:s0", 
    "size": 0, 
    "src": "/root/.ansible/tmp/ansible-tmp-1426517500.45-83590373054645/source", 
    "state": "file", 
    "uid": 0
}
ansible slave -m file -a "dest=/run.sh mode=777 owner=root group=root" #更改被控端run.sh的权限
192.168.181.16 | success >> {
    "changed": false, 
    "gid": 0, 
    "group": "root", 
    "mode": "0777", 
    "owner": "root", 
    "path": "/run.sh", 
    "secontext": "system_u:object_r:etc_runtime_t:s0", 
    "size": 0, 
    "state": "file", 
    "uid": 0
}
ansible slave -m script -a "/run.sh" #被控端执行控制端上的脚本

192.168.181.16 | success >> {
    "changed": true, 
    "rc": 0, 
    "stderr": "", 
    "stdout": ""
}
ansible slave -m yum -a "name=vim state=latest" #在被控端机器上yum安装最新的vim
192.168.181.16 | success >> {
    "changed": false, 
    "msg": "", 
    "rc": 0, 
    "results": [
        "All packages providing vim are up to date"
    ]
}
ansible slave -m service -a "name=iptables state=running" #启动被控端的iptables服务
192.168.181.16 | success >> {
    "changed": true, 
    "name": "iptables", 
    "state": "started"
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容