• ansible-playbook 打通ssh无秘钥


    建议参考:

    http://www.cnblogs.com/jackchen001/p/6514018.html

    这个代码清晰,效果佳!

    参考链接:

    http://www.cnblogs.com/caoguo/p/5351127.html

    备注下,其实 不需要执行 rsync_key2.yml

    执行ansible前会遇到 ssh首次连接时,提示 是否continue,需要输入yes,这个问题,得需要个解决办法

    1. 首先确认要远程打通ssh无秘钥的用户,是否有生成相应的key

    比如 test用户,ls /home/test/.ssh/

    是否有这些文件

    authorized_keys  id_rsa  id_rsa.pub  known_hosts

    如果没有的话,执行: ssh-keygen,然后一路回车即可(前提是在 test用户下操作)

    2. 准备 ansible执行所需要的 hosts文件,文件内容主要是 [test] 组标记, ips 要远程操作的服务器ip 每个ip是一行,ip后面跟上 指定的 ssh信息:ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22

    test 文件内容如下:

    [test]
    0.0.0.1 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22
    0.0.0.2 ansible_ssh_user=test ansible_ssh_pass=test ansible_ssh_port=22

    3. 准备playbook文件 ,yml结尾

    3.1. 拷贝ssh :

    rsync_key.yml

    文件内容如下:

    - hosts: test
      remote_user: test
      tasks:
      - name: copy ssh key
        authorized_key:
          user: test
          key: "{{ lookup('file', '/home/test/.ssh/id_rsa.pub') }}"

    3.2.  传送key到远程服务器:

    rsync_key2.yml

    文件内容如下:

    - hosts: test
      remote_user: test
      tasks:
      - name: mkdir /home/test/.ssh
        command: mdkir -p /home/test/.ssh
      - name: copy ssh key
        copy: src=/home/test/.ssh/id_rsa.pub dest=/home/test/.ssh owner=test group=test mode=0644

    3.3. 执行 playbook

    -i test ,是指  指定 ansible playbook 需要执行远程服务器, test 相对于 默认的hosts文件

    ansible-playbook  -i test rsync_key.yml

    ansible-playbook  -i test rsync_key2.yml (不需要执行了,第一个足矣)

    添加 hadoop用户

    useradd.yml

    ---
    - hosts: hadoop_devops_hosts
      remote_user: test
      sudo: yes
      vars:
        user: hadoop
     
      tasks:
        - name: add user
          action: user name={{ user }}  home=/home/{{ user }}
      tags:
        - user

     执行完后,查看下

    ansible -i ./hosts hadoop_hosts -m shell -a "id hadoop"

    接下来准备 远程生成hadoop key

    并在 各服务器上,让 hadoop来去自如

    在尝试学习新的语言之前先理解这门语言的设计原理能够让你在探索这门新语言时保持一个清醒而且开发的状态。
  • 相关阅读:
    html标签嵌套规则
    关于setTimeout和Promise执行顺序问题
    vue基础
    new操作符具体干了什么
    ["1", "2", "3"].map(parseInt)
    线性表
    树的一些概念和性质
    A*与IDA*
    树上启发式合并
    启发式合并
  • 原文地址:https://www.cnblogs.com/jackchen001/p/6372840.html
Copyright © 2020-2023  润新知