Ansible批量添加主机

摘要:
1、 管理端生成RSA公钥ssh-keygen trsa。2.单机添加目标主机ssh-copy-idroot@10.0.0.21输入密码以建立无密码连接。3.批量添加目标主机。1.编辑主机组[group-C]aaansible,以便在/etc/secure/hosts_connection=sshansible_user=rootansible_shsh_pass=“111111”bbbansi中批量添加

一、管理端生成RSA公钥

ssh-keygen -t rsa

二、单台添加目标主机

ssh-copy-id root@10.0.0.21
输入密码后免密连接建立

三、批量添加目标主机

1.在/etc/ansible/hosts中编辑要批量添加的主机组

[GROUP-CC]
 aaa ansible_connection=ssh ansible_user=root ansible_ssh_pass="111111"
 bbb ansible_connection=ssh ansible_user=root ansible_ssh_pass="222222"
 ccc ansible_connection=ssh ansible_user=root ansible_ssh_pass="333333"
 ddd ansible_connection=ssh ansible_user=root ansible_ssh_pass="444444"
 eee ansible_connection=ssh ansible_user=root ansible_ssh_pass="555555"

2.编辑推送公钥的yaml文件

cat /etc/ansible/roles/ssh_key/ssh-key.yaml,为了保证sshd权限统一,可以统一sshd_config配置并重启sshd,sshd_config提前放置在files目录下。

执行方法 ansible-playbook ssh-key.yaml -e "remote_ip=xx.xx.xx.xx" -k

- hosts: '{{ remote_ip }}'
  gather_facts: false
  #不收集远程主机信息
  user: root

  tasks:
  - name: ssh-copy
    authorized_key:
      user: root
      key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
      #本地读取公钥位置
      path: '/root/.ssh/authorized_keys'
      state: present
      #present添加 absent删除
      exclusive: no
      #是否移除authorized_keys文件中其它非指定key

  - name: cpsshd
    copy: src=sshd_config dest=/etc/ssh/sshd_config

  - name: Restart the sshd service
    service:
      name: sshd
      state: restarted

  

3.测试并完成推送

ansible-playbook -C /etc/ansible/roles/ssh_key/ssh-key.yaml
ansible-playbook  /etc/ansible/roles/ssh_key/ssh-key.yaml  

  

 四、常见问题处理

1、权限问题 

192.168.200.111 | UNREACHABLE! => {
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
", 
    "unreachable": true
}

  出现上面问题的原因一般为用户ssh权限问题,需检查ansible使用的连接用户是否有ssh的权限

  root用户时,需要目标机sshd_config开启如下配置

PermitRootLogin yes
StrictModes no

sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
sed -i 's/#StrictModes yes/StrictModes no/g' /etc/ssh/sshd_config

  

2、非root用户,需要在/etc/ansible/hosts或者自定义的inventory.ini中指定用户ansible_user=XXX,

[GROUP-CC]
 aaa ansible_connection=ssh ansible_user=root ansible_ssh_pass="111111"
 bbb ansible_connection=ssh ansible_user=root ansible_ssh_pass="222222"

       自定义该用户公钥并发送

ssh-keygen -t rsa #注意第一步时需要指定路径和钥匙名称 /home/aaa/.ssh/ansibleaaa
ssh-copy-id -i /home/aaa/.ssh/ansibleaaa aaa

  指定公钥

ansible aaa -m ping --private-key=/home/aaa/.ssh/ansibleaaa

  可以根据需要在管理端的~/.ssh/中添加一个映射用的config文件

  cat ~/.ssh/config

#Host    hostname
#user    username
Host    host1
user    user1
Host    host2
user    user2
#在ssh时,系统会根据Host的映射关系选择连接的用户,只要用ssh连接host2,就会默认用user2用户连接

  

免责声明:文章转载自《Ansible批量添加主机》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Vue 百度地图的两种使用方式并且动态添加标注DB2sql——DB2临时表的创建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用Git GUI工具 上传本地仓库到 gitee码云仓库

前言:  网上关于git的命令操作与使用很多教程和博客,在使用git工具时我发现有一个 git Gui 可视化工具,我觉得十分的亲切,由于我之前一直是使用svn作为版本控制管理工具,都是可视化操作,使用起来特别方便,我发现了git GUI 我觉得这个应该使用起来就会很方便就不用去使用命令进行上传更新提交代码了吧,但在使用Git GUI过程中并没有那么的方便...

ssh 免密码设置失败原因总结

先复习一下设置ssh免密码操作的步骤: 进入主目录 cd 生成公钥 ssh-keygen -t rsa -P '' (注:最后是二个单引号,表示不设置密码) 然后分发公钥到目标机器 ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方机器IP (注意不要忘记了参数-i) 注:ssh-copy-id -i 是最简单的办法,如果不用这...

Linux 搭建 Jenkins

环境准备 安装JDK 安装 JDK 之前写过一篇文章,本文就不具体讲了: Linux 安装 JDK 注意:Java版本不能是gcj,会导致Jenkins有问题,centos7搭建jenkins小记文章中提到的java版本问题导致CentOS下的Jenkins有问题。 安装Git yum install git 规避磁盘过满问题 1.方法1:创建软连接,准...

rsync详细配置

1 说在前面的话 rsync官方网站: https://www.samba.org/ftp/rsync/rsync.html rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。 rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、...

sshd服务防止暴力破解

防止暴力破解的方法有三种: 方法一、 配置安全的sshd服务 1: 密码足够的复杂,密码的长度要大于8位最好大于20位。密码的复杂度是密码要尽可能有数字、大小写字母和特殊符号混合组成 2:修改默认端口号 3 :不允许root账号直接登陆,添加普通账号,授予root的权限 互动:是否可以禁止root身份登录? 不行,因为有些程序需要使用root身份...

ubuntu下解决无声音的方法

问题的根源在于用户失去了访问audio设备的权限。可以通过命令ls -la /dev/snd来查看音频设备的使用权限。比如在我的系统下,输出total 0drwxr-xr-x 2 root root 180 2008-05-14 08:53 .drwxr-xr-x 12 root root 4580 2008-05-15 13:01 ..crw-rw---...