ansible学习(一)

一,Ansible简介

Ansible是一个自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点。实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。

Ansible的基本特性:

  • no agents:不需要在被管控主机上安装任何客户端;
  • no server:无服务器端,使用时直接运行命令即可;
  • modules in any languages:基于模块工作,可使用任意语言开发模块;
  • yaml,not code:使用yaml语言定制剧本playbook;
  • ssh by default:基于SSH工作;
  • strong multi-tier solution:可实现多级指挥。

Ansible的优点:

  • 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
  • 使用python编写,维护更简单,ruby语法过于复杂;
  • 支持sudo。

二,Ansible安装

1,系统环境准备

系统平台:centos7.4

ansible  server:172.31.123.8

ansible  client: 172.31.123.9

(1)写入hosts记录,这个一定要写。

(2)关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2,安装

(1)yum安装

 yum -y install python PyYAML python-paramiko python-jinja2 python-simplejson

 yum -y install ansible

如果报错,检查yum源。

三,ansible配置

(1)添加配置

vim /etc/ansible/hosts

把client主机ip添加到里面,示例如下:

当主机多的时候可以分组添加

(2)测试

[root@Ansible ~]# ansible test -m command -k  -a 'uptime' -u ansible
SSH password: 
172.31.123.9 | SUCCESS | rc=0 >>
 15:39:37 up 20 days, 14:57,  2 users,  load average: 0.14, 0.50, 0.37

参数解释:test(就是刚刚设置的主机组,这里也可以直接输入ip地址),-m (引用模块 )  command(模块名称,模块的作用会在下一篇中详细解释) -k (使用密码登录) -a (执行的命令) -u (指定用户)

(3)ansible连接方式

介绍两种登陆方式

<1>使用 -k 和-u指定用户登录(建议使用),可以统一下所有的client的用户以及密码(如果已经统一可以忽略),方便管理。

<2>配置ssh免密登录

[root@Ansible ~]# ssh-keygen -t rsa  --直接回车即可,不用设置密钥密码。
Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
bc:4e:4e:5f:61:a3:37:08:b0:c4:00:98:90:5b:c6:9f root@Ansible.01.com
The key's randomart image is:
+--[ RSA 2048]----+
|o=...            |
|+ +  o           |
| + . .+          |
|.   E. +         |
|      . S   +    |
|         o + o   |
|        + o +    |
|       = . o .   |
|        o .      |
+-----------------+

[root@Ansible ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@Ansible ~]# chmod 600 /root/.ssh/authorized_keys

将公钥传给被管理的机器节点,在传公钥前,我们需要确认下我们要传的服务器上面是不是存在其他机器的公钥,如果存在,就不能使用scp直接传过去了,因为这样会把原来的公钥覆盖,会造成以前可以免密登录的服务器登录不了,造成不可控的事件发生,所以我们需要把现在公钥里面的东西复制下来,添加到本来就存在的那个公钥的文件里面就可以了。

[root@Ansible ~]# scp /root/.ssh/authorized_keys 172.31.123.9:/root/.ssh/
root@192.168.8.66's password: 
authorized_keys                      100%  401     0.4KB/s   00:00  

到此安装安装配置完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值