ansible的基本概念和使用方法<1>

简介:

ansible是一个一键部署服务的软件,类似于saltstack,puppet,但是与后者不同的是,ansible是依赖于ssh连接去执行对应的部署,而后两者是要在需要部署的机器上装agent才可以完成部署,那我如果需要部署相同配置的100台服务器,用ssh连接的方法就显得很高效了。

ansible 10.1.1.60 -m ping

上面这条命令表示用ansible去ping这个ip的主机,-m表示调用ping这个模块,当然ansible还有很多模块,具体看我们在什么环境下使用什么样的模块,但是这条命令有两个条件才可以执行

1,被ping的主机与ansible所在的主机可以通过ssh连接,有这个服务

2,被ping的主机确定已经添加到ansible的管理清单中

在进行ansinle的操作时候,首先ansible需要一个自己的独立的epel源,建议使用阿里云或者epel的源比较好,当源配置完成后,就直接yum install ansible安装成功

阿里源:

 pwd

/etc/yum.repos.d
 

 cat aliBase.repo

[aliBase]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
 

假设我有四台主机,1,2,3,4

要通过1来管理其他三台,需要在装有ansible的1上的/etc/ansible/hosts中配置相关的清单

那我们在hosts中直接写入1的ip:10.1.1.60

再执行我们之前的ping命令看看会发生什么:
__20180807104255
很明显不行,是因为格式错误,而正确的格式应该是:
__20180807104456
__20180807104740
所以ansible的配置清单一定要注意格式的书写
那么在进行执行命令和配置清单之前还有一项重要的操作,那就是为了避免每次ssh连接的时候需要登录密码:
image
所以我们可以在ansible主机上做一个ssh-keygen的免密认证,就是生成公钥和私钥后将公钥交给我们需要连接的主机,避免了每次连接需要输入密码:
image
image
可以看到在用户的家目录下生成了一堆的公钥和私钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@118.24.119.177
我们可以通过上面这条命令将我们生成的公钥交给177这台主机
image
输入一次密码后现在已经完成了认证,
现在我们再次试一下连接看用不用密码:
image
很明显不用

好了,继续讲我们的ansible
那么在进行完公钥认证后,我们ansible的hosts清单中就不需要配置用户和密码这一项了,直接演变成如下:
image
那么如果我们需要管理多个服务器,ssh生成的密钥肯定不止一个,需要不同的密钥去对应管理不同的服务器,我们需要ssh-agent来管理我们的多对密钥,ssh-agent会在下一篇博客有所介绍,今天的ansible先有个初步的了解

目录
相关文章
|
1月前
|
存储 机器人
01 ROS基本概念及命令
这篇文章介绍了ROS(机器人操作系统)的基本概念,如节点、ROS Master、参数、通信机制(话题和消息、服务)、功能包、命名空间和命名重映射,以及一些基本的ROS命令行工具的使用,例如rosnode、rostopic、rossrv、rosservice、rosparam和roslaunch。
35 0
|
2月前
|
Serverless 网络安全 Python
Ansible原理和安装
Ansible原理和安装
36 1
|
1月前
|
运维 jenkins 网络安全
[ansible]简介安装入门
[ansible]简介安装入门
|
4月前
|
存储 安全 Shell
Ansible安装基本原理及操作(初识)
Ansible安装基本原理及操作(初识)
|
运维 Shell 网络安全
Ansible概述(一)
Ansible概述(一)
150 0
Ansible概述(一)
|
Shell Linux 数据安全/隐私保护
Ansible概述(二)
Ansible概述(二)
91 0
LXJ
05-Ansible模块的基本使用
05-Ansible模块的基本使用
LXJ
147 0
|
JSON Shell 数据格式
Ansible-playbook 变量进阶(学习笔记二十五)
1、register结果返回到变量中 - name: debug test one host   hosts: 200.200.6.53   tasks:     - debug:         msg: "System {{ inventory_h...
1388 0
|
NoSQL Apache Redis
Ansible-playbook 基本语法与实例(学习笔记十九)
1、安装apache,做初始配置,并启动服务: 这个是你选择的主机 hosts: webservers 这个是变量 vars: http_port: 80 max_clients: 200 远端的执行权限 remote_user: root t...
1320 0