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來去自如

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM