首页 > 技术文章 > ansible笔记(1)-入门实践

ltlinux 2019-08-01 09:06 原文

什么是ansible?

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

 

ansible能做什么?

批量完成一些需要经常重复的任务

比如:批量部署软件

比如:批量拷贝文件

比如:批量重启服务

 

ansible相比于其他工具有什么优势?

No agent 不需要在被管控主机上安装任何软件

No server 不用单独启用服务,能使用直接运行,使用时直接运行命令

对硬件资源占用小

不需要在被管控的主机上安装任何软件

基于模块工作

基于ssh工作

使用yaml语言

可实现多级指挥

 

ansible的安装

ansible可通过epel源yum安装,安装方式如下:

 

[root@myhost ~]# yum install epel-release -y
[root@myhost ~]# yum install ansible -y

 

  

简单配置ansible的主机

ansible主机配置文件位置:

[root@myhost ~]# ll /etc/ansible/hosts
-rw-r--r-- 1 root root 1016 7月  21 07:59 /etc/ansible/hosts

  配置文件可按如下格式编写:

192.168.10.2  ansible_port=22 ansible_user=root ansible_ssh_pass=123456
参数说明:
ansible_port=22  表示使用22端口,默认为22端口,若未修改过ssh端口可不指定
ansible_user=root  表示使用root用户来ssh连接主机
ansible_ssh_pass=123456  表示对应用户的连接密码

  以上编写方式较为麻烦且安全性不高,既然是基于ssh的连接,我们便可以使用密钥验证的方式:

[root@myhost ~]# ssh-keygen    #生成密钥

#将生成的公钥加入到192.168.10.2的认证列表
[root@myhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.2 

#至此,在/etc/ansible/hosts文件中仅需配置ip即可。

  主机分组配置:

#若主机很多,我们想分组进行操作可以采取如下的配置方式:
[testgroup]
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6

#如上配置过后可直接通过组名对组内所有主机进行操作:
ansible testgroup -m ping   #查看主机连接状态

  

 

推荐阅读