设为首页 收藏本站
查看: 1473|回复: 2

[经验分享] ansible 简单入门与使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-23 09:31:19 | 显示全部楼层 |阅读模式
  之前用过saltstack,也研究过一段时间,也写过saltstack的自动化平台;但是不可否认saltstack还是遇到各种小问题;后来开始转向研究一下ansible,一来是他不用像saltstack一样每个都要去部署一个客户端,而且有些操作系统saltstack死活装不上;二来是ansible操作简单,API也是非常的简便。可能跟我掌握不深有关系:
一、ansible安装:
centos6 安装epel源:

1
  rpm -ivh http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm




二、安装ansible非常简便:

1
  yum install ansbile




三、设置主机互信;这样就不用每次执行时候都加用户名密码:
ansible服务端执行:

1
2
  ssh-keygen -t rsa -P ''
  ssh-copy-id -i /root/.ssh/id_rsa.pub root@clientIP




使用ansible:
1、配置/etc/ansible/hosts:默认已经给出示例;我们注释掉:
1
2
  vim /etc/ansible/hosts
  :%s/^\(\)/\#1/g




添加主机组:
1
2
3
  [client]
  192.168.63.192
  192.168.63.198




2、测试是否成功添加:
1
2
3
4
5
6
7
8
9
  [iyunv@xiaoluo ansible]# ansible client -m ping
   192.168.63.192 | SUCCESS => {
    "changed": false,
    "ping": "pong"
   }
   192.168.63.198 | SUCCESS => {
    "changed": false,
    "ping": "pong"
   }



当然也支持单台主机或者正则:
1
2
3
4
5
6
7
8
9
    [iyunv@xiaoluo ansible]# ansible 192.168.63.* -m ping
    192.168.63.192 | SUCCESS => {
    "changed": false,
    "ping": "pong"
    }
    192.168.63.198 | SUCCESS => {
    "changed": false,
    "ping": "pong"
      }



3、帮助文档查看:
1
    [iyunv@xiaoluo ansible]# ansible-doc -l



具体单个模块帮助:
1
    [iyunv@xiaoluo ansible]# ansible-doc -s copy




4、远程命令模块默认什么都不加是执行commond模块,还有shell模块,raw模块:
1
2
3
4
5
[iyunv@xiaoluo ansible]# ansible client -a "uptime"
192.168.63.192 | SUCCESS | rc=0 >>
10:46:54 up 37 min,  1 user,  load average: 0.00, 0.01, 0.05
192.168.63.198 | SUCCESS | rc=0 >>
10:46:55 up 40 min,  1 user,  load average: 0.00, 0.01, 0.05



1
2
3
4
5
[iyunv@xiaoluo ansible]# ansible client -m shell -a "uptime"
192.168.63.198 | SUCCESS | rc=0 >>
10:48:28 up 41 min,  1 user,  load average: 0.00, 0.01, 0.05
192.168.63.192 | SUCCESS | rc=0 >>
10:48:27 up 38 min,  1 user,  load average: 0.00, 0.01, 0.05



raw模块中间是可以加管道的:
1
2
3
4
5
6
7
[iyunv@xiaoluo ansible]# ansible client -m raw -a "ps -ef | grep xinetd"
192.168.63.192 | SUCCESS | rc=0 >>
root       983     1  0 10:10 ?        00:00:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
root      2632  2608  0 10:49 pts/0    00:00:00 bash -c ps -ef | grep xinetd
192.168.63.198 | SUCCESS | rc=0 >>
root       998     1  0 10:07 ?        00:00:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
root      2653  2629  0 10:49 pts/0    00:00:00 bash -c ps -ef | grep xinetd




5、yum模块远程安装服务:
1
[iyunv@xiaoluo ansible]# ansible client -m yum -a "name=httpd state=present"



远程shell方式启动服务:
1
[iyunv@xiaoluo ansible]#ansible keepalived -m shell -a "service httpd restart"



以service模块来管理启动:
1
[iyunv@xiaoluo ansible]# ansible client -m service -a "name=httpd state=restarted"



6、推送文件模块:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[iyunv@xiaoluo ~]# ansible client -m copy -a "src=/root/xiaoluo.txt dest=/tmp"
192.168.63.192 | SUCCESS => {
    "changed": true,
    "checksum": "4ecf4faee5813e8d0fd9c4d94ed93306c0ac0527",
    "dest": "/tmp/xiaoluo.txt",
    "gid": 0,
    "group": "root",
    "md5sum": "fdf76f6cfbca661e39e0bf710ae8b310",
    "mode": "0755",
    "owner": "root",
    "size": 13,
    "src": "/root/.ansible/tmp/ansible-tmp-1458448180.46-3214309858488/source",
    "state": "file",
    "uid": 0
}



远程查看文件:
1
2
3
4
5
[iyunv@xiaoluo ~]# ansible client -a "cat /tmp/xiaoluo.txt"
192.168.63.198 | SUCCESS | rc=0 >>
xiaoluo.text
192.168.63.192 | SUCCESS | rc=0 >>
xiaoluo.text




7、修改用户的权限:
远程查看文件权限:
1
2
3
4
5
[iyunv@xiaoluo ~]# ansible client -a "ls -l /tmp/xiaoluo.txt"
192.168.63.198 | SUCCESS | rc=0 >>
-rwxr-xr-x 1 root root 13 Mar 22 11:19 /tmp/xiaoluo.txt
192.168.63.192 | SUCCESS | rc=0 >>
-rwxr-xr-x 1 root root 13 Mar 22 11:19 /tmp/xiaoluo.txt



修改所属组和用户:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@xiaoluo ~]# ansible client -m file -a "dest=/tmp/xiaoluo.txt mode=755 owner=xiaoluo group=xiaoluo"
192.168.63.192 | SUCCESS => {
    "changed": true,
    "gid": 1002,
    "group": "xiaoluo",
    "mode": "0755",
    "owner": "xiaoluo",
    "path": "/tmp/xiaoluo.txt",
    "size": 13,
    "state": "file",
    "uid": 1002
}
192.168.63.198 | SUCCESS => {
    "changed": false,
    "gid": 1002,
    "group": "xiaoluo",
    "mode": "0755",
    "owner": "xiaoluo",
    "path": "/tmp/xiaoluo.txt",
    "size": 13,
    "state": "file",
    "uid": 1002
}



查看权限修改:
1
2
3
[iyunv@xiaoluo ~]# ansible client  -a "ls -l /tmp/xiaoluo.txt"               
192.168.63.198 | SUCCESS | rc=0 >>-rwxr-xr-x 1 xiaoluo xiaoluo 13 Mar 22 11:19 /tmp/xiaoluo.txt
192.168.63.192 | SUCCESS | rc=0 >>-rwxr-xr-x 1 xiaoluo xiaoluo 13 Mar 22 11:19 /tmp/xiaoluo.txt



8、客户端数据采集类似saltstack 的grain模块(只是显示一部分):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[iyunv@xiaoluo ansible]# ansible client -m setup
192.168.63.198 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "172.17.2.1",
            "192.168.63.198"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::20c:29ff:fe86:7901"
        ],
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "06/02/2011",
        "ansible_bios_version": "6.00",
        "ansible_cmdline": {
            "BOOT_IMAGE": "/vmlinuz-3.10.0-327.el7.x86_64",
            "LANG": "en_US.UTF-8",
            "crashkernel": "auto",
            "quiet": true,
            "rd.lvm.lv": "centos/swap",
            "rhgb": true,
            "ro": true,
            "root": "/dev/mapper/centos-root"
        },





还有很多模块,这里只是一小部分,当然还有一个强大的playbook后续继续更新。

运维网声明 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-194559-1-1.html 上篇帖子: ansible playbook实战——下发部署nginx以及更新、回滚 下篇帖子: Ansible4:Ad-hoc与命令执行模块
累计签到:7 天
连续签到:1 天
发表于 2016-3-23 14:33:56 | 显示全部楼层
最近也在研究这个自动化的工具,谢谢你的share,

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

累计签到:3 天
连续签到:1 天
发表于 2016-3-31 10:47:34 | 显示全部楼层
内网机器如何安装ansible

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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