ansible 简单入门与使用

简介:

    之前用过saltstack,也研究过一段时间,也写过saltstack的自动化平台;但是不可否认saltstack还是遇到各种小问题;后来开始转向研究一下ansible,一来是他不用像saltstack一样每个都要去部署一个客户端,而且有些操作系统saltstack死活装不上;二来是ansible操作简单,API也是非常的简便。可能跟我掌握不深有关系:


一、ansible安装:

centos6 安装epel源:

 

1
   rpm  - ivh http: / / dl.fedoraproject.org / pub / epel / 6 / x86_64 / epel - release - 6 - 8.noarch .rpm


二、安装ansible非常简便:

 

1
   yum install ansbile


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

ansible服务端执行:

  

1
2
   ssh - keygen  - t rsa  - P ''
   ssh - copy - id  - / 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
   [root@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
     [root@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
     [root@xiaoluo ansible] # ansible-doc -l

具体单个模块帮助:

1
     [root@xiaoluo ansible] # ansible-doc -s copy


4、远程命令模块默认什么都不加是执行commond模块,还有shell模块,raw模块:

1
2
3
4
5
[root@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
[root@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
[root@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
[root@xiaoluo ansible] # ansible client -m yum -a "name=httpd state=present"

远程shell方式启动服务:

1
[root@xiaoluo ansible] #ansible keepalived -m shell -a "service httpd restart"

以service模块来管理启动:

1
[root@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
[root@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
[root@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
[root@xiaoluo ~] # ansible client -a "ls -l /tmp/xiaoluo.txt"
192.168 . 63.198  | SUCCESS | rc = 0  >>
- rwxr - xr - 1  root root  13  Mar  22  11 : 19  / tmp / xiaoluo.txt
192.168 . 63.192  | SUCCESS | rc = 0  >>
- rwxr - xr - 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
[root@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
[root@xiaoluo ~] # ansible client  -a "ls -l /tmp/xiaoluo.txt"               
192.168 . 63.198  | SUCCESS | rc = 0  >> - rwxr - xr - 1  xiaoluo xiaoluo  13  Mar  22  11 : 19  / tmp / xiaoluo.txt
192.168 . 63.192  | SUCCESS | rc = 0  >> - rwxr - xr - 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
[root@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后续继续更新。











本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1753903,如需转载请自行联系原作者
目录
相关文章
|
存储 运维 Linux
Ansible自动化运维工具安装入门,看这一篇就够了(1)
Ansible自动化运维工具安装入门,看这一篇就够了(1)
139 0
|
4月前
|
运维 自然语言处理 安全
自动化运维的利器:Ansible入门与实践
【8月更文挑战第33天】在现代IT基础设施的管理中,自动化运维已成为提高效率、减少错误的关键技术。Ansible作为一款开源的自动化配置管理和应用部署工具,以其简洁性、易用性和强大的功能受到广泛欢迎。本文将介绍Ansible的基本概念、安装步骤和简单使用,通过实际案例展示其在自动化运维中的应用。
|
5月前
|
运维 Devops 应用服务中间件
自动化运维的利器:Ansible入门与实践
【8月更文挑战第27天】在这个数字化时代,高效的系统管理变得尤为重要。Ansible,作为一个简单而强大的自动化运维工具,正逐渐成为DevOps工程师的首选。本篇文章将带你了解Ansible的基本概念,通过实际操作演示其如何简化日常任务,以及它如何帮助你实现自动化部署和配置管理。无论你是初学者还是有经验的运维人员,这篇文章都将为你提供有价值的信息和启示。
|
2月前
|
运维 负载均衡 Ubuntu
自动化运维的利器:Ansible入门与实践
【10月更文挑战第31天】在当今快速发展的信息技术时代,高效的运维管理成为企业稳定运行的关键。本文将引导读者了解自动化运维工具Ansible的基础概念、安装步骤、基本使用,以及如何通过实际案例掌握其核心功能,从而提升工作效率和系统稳定性。
|
3月前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【10月更文挑战第21天】在现代IT基础设施的管理中,自动化运维已成为提升效率、降低错误率的关键。Ansible,作为一种简单而强大的自动化工具,正被广泛应用于配置管理、应用部署和任务自动化等领域。本文将引导你了解Ansible的基本概念,通过实际案例展示如何利用Ansible简化日常运维工作,并探讨其在现代IT运维中的应用价值。无论你是新手还是有经验的系统管理员,这篇文章都将为你开启Ansible的高效之旅提供指导。
|
4月前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
87 36
|
4月前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible入门与实践
【9月更文挑战第28天】在追求高效、稳定的IT运维时代,自动化工具Ansible凭借其简洁性、易用性和强大的功能脱颖而出。本文旨在通过实际案例引导读者理解Ansible的核心概念和操作流程,并分享如何通过Ansible简化日常运维任务,提升工作效率。从基础安装到高级应用,我们将一步步揭开Ansible的神秘面纱,让初学者也能轻松掌握自动化运维的要诀。
|
4月前
|
运维 关系型数据库 MySQL
自动化运维工具:Ansible入门与实践
【9月更文挑战第23天】本文将带你进入自动化运维的世界,以Ansible为例,从基础概念到实际操作,让你轻松掌握自动化运维技能。我们将一起探索如何通过代码实现批量部署、配置管理和任务执行等功能,提高运维效率,减轻工作压力。让我们一起开启自动化运维之旅吧!
|
4月前
|
存储 运维 网络安全
自动化运维工具:Ansible入门与实践
【9月更文挑战第17天】本文将介绍Ansible的基本概念、安装和简单使用,以及如何编写一个简单的Ansible playbook。通过本文,您可以了解到Ansible的基本原理和使用方法,以及如何在实际工作中应用Ansible进行自动化运维。
|
4月前
|
运维 应用服务中间件 nginx
自动化运维的利器:Ansible入门与实践
【9月更文挑战第13天】在这个快速发展的IT时代,自动化运维已成为提升效率、减少失误的关键。本文将带你了解Ansible,一个强大的自动化工具,它简化了配置管理、应用部署和任务自动化。通过实际案例,我们将探索Ansible的基本概念、安装步骤、关键组件以及如何编写Playbook来自动化日常任务。无论你是新手还是有经验的运维专家,这篇文章都将为你提供宝贵的见解和技巧,让你在自动化运维的道路上更进一步。