zoukankan      html  css  js  c++  java
  • ansible 批量推送公钥

    1、环境如下  ansible 主控端 192.168.33.239    被控端  192.168.11.148  192.168.11.149

    1.使用 ssh-keygen -t rsa生成密钥对  (后面用opsadmin用户来操作)

     ssh-keygen -t rsa 

     

    2.推送单个公钥到远程机器

    格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]

    ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"

     

    3.添加ansible hosts

    编辑/etc/ansible/hosts,没有则创建些文件。

    格式:【主机名】 【主机地址】 【主机密码】  默认是root用户来进行的

    [tomcat-servers]
    1 ansible_ssh_user="root"  ansible_ssh_host=192.168.11.148 ansible_ssh_pass="test"
    2 ansible_ssh_user="root"  ansible_ssh_host=192.168.11.149 ansible_ssh_pass="test"

    新版的ansible(2.4) hosts有更新, 用以下方式:

    [nginx]
    192.168.11.148   ansible_user=opsadmin  ansible_ssh_pass="test"  ansible_ssh_port=4958
    192.168.11.149   ansible_user=opsadmin  ansible_ssh_pass="test"  ansible_ssh_port=4958

    4.批量推送公钥到远程机器

    机器多的情况下,使用ssh-copy-id方法有些费时,使用ansible-playbook推送ymal,这里使用到了authoried_keys模块,可以参考 http://docs.ansible.com/authorized_key_module.html

    将以下文件命名为:push.ssh.ymal 

    [root@sz]# cat /home/opsadmin/push_ssh.yaml 
    - hosts: nginx
      user: opsadmin
      tasks:
        - name: ssh-copy
          authorized_key:
            user: opsadmin
            state: present
            key: "{{ lookup('file','/home/opsadmin/.ssh/id_rsa.pub') }}"

    [root@mail opt]# ansible-playbook --syntax-check push_ssh.yaml#检测语法

    [root@mail opt]# ansible-playbook -C push_ssh.yaml #运行测试 并不实际运行

     

    5.执行命令,检测结果 

    先修改 /etc/ansible/hosts文件

    192.168.11.148 ansible_ssh_port=4958
    192.168.11.149 ansible_ssh_port=4958

     

    7.如若报错,解决

    Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host.

    修改host_key_checking(默认是check的):

    vi /home/xiangdong/ansible/ansible.cfg
    # uncomment this to disable SSH key host checking
    host_key_checking = False
  • 相关阅读:
    jvisualm 结合 visualGC 进行jvm监控,并分析垃圾回收
    linux 查看服务器cpu 与内存配置
    arthas 使用总结
    selinux contexts 安全上下文的临时更改
    Android 8.1 Doze模式分析(五) Doze白名单及Debug方式
    Window 任意窗口置顶软件Window TopMost Control
    Android ApkToolPlus一个可视化的跨平台 apk 分析工具
    SVN Please execute the 'Cleanup' command.
    Android 如何在64位安卓系统中使用32位SO库
    Android cmd命令查看apk是32位还是64位?
  • 原文地址:https://www.cnblogs.com/hellojackyleon/p/9481927.html
Copyright © 2011-2022 走看看