应用场景:

         有如下4台主机: 

             cpy01.dev.xjh.com

             cpy02.dev.xjh.com

             cpy03.dev.xjh.com

             cpy04.dev.xjh.com

            cpy01           供开发环境使用,密码为:passwddev

            cpy02           供测试环境使用,密码为:passwdpre

            cpy03 cpy04     供生产环境使用,密码为:passwdprd

            把开发环境和测试环境分到test组,生产环境分到public组;最后将所有主机放在一个ALL组中。

要求对各个分组都能做到统一执行指令

------------------------------------------------------------------------------------------------------------------------

下文将介绍密码和秘钥两种方式对上述场景进行权限认证

 

公共配置(不管哪种方式需配置如下内容):

 

vim /etc/ansible/ansible.cfg
inventory = /etc/ansible/hosts #指定主机组的配置文件位置
host_key_checking = False #关闭主机认证检查,不关闭这个会导致密码变更后,原远程信息保存在known_hosts 中的信息改变,提示认证错误。
#需要清除know_hosts 文件的该条访问信息后才能远程。

一、用户名密码认证:

1.1 修改主机组配置文件如下(分组使用"[]",组名使用x_x或x-x ):

vim /etc/ansible/hosts
[dev-hosts]
cpy01.dev.xjh.com
[pre-hosts]
cpy02.dev.xjh.com
[prd-hosts]
cpy03.dev.xjh.com
cpy04.dev.xjh.com
#还可以写成这种方式 cpy[03:04].dev.xjh.com
[test:children]
dev-hosts
pre-hosts
[public:children]
prd-hosts
[all:children]
test
public

  1.2 配置用户名密码(一般配置ssh端口、ssh用户名、ssh密码三项):

  在分组目录中创建用户名密码认证文件,按自己所需要的分组进行配置,认证文件名要和分组名一致,这里我们按最小分组来做(最小分组有个好处是,大分组包含了小分组,所以密码认证是可行的。但如果按大分组来,若小分组中密码不一致则使用小分组名执行指令部分密码认证不一致的会失效)

vim /etc/ansible/group_vars/dev-hosts
ansible_ssh_port: 22 //分组主机远程端口
ansible_ssh_user: root //分组主机用户名
ansible_ssh_pass: passwddev //分组主机密码 vim /etc/ansible/group_vars/pre-hosts
ansible_ssh_port: 22
ansible_ssh_user: root
ansible_ssh_pass: passwdpre vim /etc/ansible/group_vars/prd-hosts
ansible_ssh_port: 22
ansible_ssh_user: root
ansible_ssh_pass: passwdprd

  

  1.3 测试权限配置是否正确:

测试命令:

ansible –m ping <group_name>

二、 秘钥认证:

 2.1 四台服务器全开启秘钥认证服务

  vim /etc/ssh/sshd_config    #将如下内容取消注释

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

 2.2 生成三组秘钥(秘钥默认声称在/root/.ssh/目录中):

ssh-keygen –t rsa –f dev_rsa
ssh-keygen –t rsa –f pre_rsa
ssh-keygen –t rsa -f prd_rsa

2.3 将对应的公钥(.pub 结尾的文件)内容,拷贝到对应组服务器/root/.ssh/authorized_keys 中,每行代表一个公钥认证(没有该文件使用ssh-keygen –t rsa 生成一个,然后将rsa文件删除,创建authorized_keys文件)。

2.4 将所有的私钥文件(dev_rsa|pre_rsa|prd_rsa) 拷贝到ansible服务器的/root/.ssh/ 目录中

2.5 在ansible /root/.ssh/目录下 创建config文件并写入以下内容:

touch /root/.ssh/config
vim /root/.ssh/config
Host cpy01.dev.xjh.com
User root
IdentityFile /root/.ssh/dev_rsa Host cpy02.dev.xjh.com
User root
IdentityFile /root/.ssh/pre_rsa Host cpy03.dev.xjh.com
User root
IdentityFile /root/.ssh/prd_rsa Host cpy04.dev.xjh.com
User root
IdentityFile /root/.ssh/pre_rsa

2.6 重启sshd 服务:

service sshd restart

测试命令:

ansible –m ping <group_name>

第三篇: Ansible 配置节点认证的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...

  2. (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...

  3. (转载) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式 ...

  4. Spring之旅第三篇-Spring配置详解

    上一篇学习了IOC的概念并初步分析了实现原理,这篇主要学习Spring的配置,话不多说,让我们开始! 一.Bean元素配置 1.1 基本配置 看一个最基本的bean配置 <bean name=& ...

  5. Hadoop学习18--yarn配置篇-基本配置节点

    <configuration> <property> <name>yarn.nodemanager.aux-services</name> <va ...

  6. 第三篇:配置Hadoop的Eclipse开发环境

    前言 在先前的文章中,已经介绍了如何在Ubuntu Kylin操作系统下搭建Hadoop运行环境,而现在将在之前工作的基础上搭建Eclipse开发环境. 配置 开发环境:Eclipse 4.2,其他同 ...

  7. 【Prometheus】第三篇:配置alertmamager

    监控系统中非常重要的一环,就是告警,系统得在故障发生的第一时间将事件发送出来,通知干系人,prometheus提供了alertmanager来实现这个功能. 第一步:prometheus.yml配置文 ...

  8. 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)

    从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  9. Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】

    前言 在写完Spring第二和第三篇后,去读了Spring In Action这本书-发现有知识点要补充,知识点跨越了第二和第三篇,因此专门再开一篇博文来写- 通过java代码配置bean 由于Spr ...

随机推荐

  1. Linux的软连接和硬连接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接] 硬连接指通过索引 ...

  2. iOS KVC/KVO 线程(GCP)

    最近比较忙,把学习知识点的帖子的地址记一下,有时间再好好整理. KVC/KVO1 KVC/KVO2 线程(GCP)

  3. 任务驱动,学习.NET开发系列第2篇------单词统计

    一 高效学习编程的办法 1 任务驱动方式学习软件开发 大部分人学习软件开发技术是通过看书,看视频,听老师上课的方式.这些方式有一个共同点即按知识点进行讲解.比如拿c#编程为例,首先是讲解大量的基础概念 ...

  4. 在React组件unmounted之后setState的报错处理

    最近在做项目的时候遇到一个问题,在 react 组件 unmounted 之后 setState 会报错.我们先来看个例子, 重现一下问题: class Welcome extends Compone ...

  5. vuejs -- 如何使一个自定义函数在加载时自动执行

  6. iOS:UICollectionView纯自定义的布局:瀑布流布局

    创建瀑布流有三种方式:   第一种方式:在一个ScrollView里面放入三个单元格高度一样的tableView,禁止tableView滚动,只需让tableView随着ScrollView滚动即可. ...

  7. 2017.4.26 慕课网--Java 高并发秒杀API(一)

    Java高并发秒杀API系列(一) -----------------业务分析及Dao层 第一章 课程介绍 1.1 内容介绍及业务分析 (1)课程内容 SSM框架的整合使用 秒杀类系统需求理解和实现 ...

  8. K-近邻算法的Python实现 : 源代码分析

    网上介绍K-近邻算法的样例非常多.其Python实现版本号基本都是来自于机器学习的入门书籍<机器学习实战>,尽管K-近邻算法本身非常easy,但非常多刚開始学习的人对其Python版本号的 ...

  9. MSSQL数据库导入导出大全二(SQL语句)

    Excel文件导入数据库多个Sheet if exists(select 1 from sysobjects where name=N'p_import_excel' and type='P')dro ...

  10. 内容提供器(ContentProvider)

    一.简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使 ...