在WEB端通过ansible-playbook+rundeck向服务器推送密钥的简单实现

一、ansible-playbook剧本如下

cat pushssh.yml
---
- hosts: "{ { dsthosts }}"
  user: root
  tasks:
   - name: copysshid
     authorized_key: user=root key="{ { lookup('file', '/root/.ssh/id_rsa.pub') }}"

 

二、rundeck任务如下


 
   
     
       
       

   

    nodes
    推送密钥
    true
    b5d7b564-69b3-43c9-ac3d-0c7befb3a9d6
    INFO
    推送密钥
    false
   
    true
   
     
        ansible-playbook /home/ansible/playbooks/pushssh.yml --extra-vars "dsthosts=${option.dsthosts} ansible_ssh_pass=${option.ansible_ssh_pass}"
     

   

    b5d7b564-69b3-43c9-ac3d-0c7befb3a9d6
 

 

三、执行过程实际调用的后台命令

ansible-playbook pushssh.yml --extra-vars "dsthosts=test ansible_ssh_pass=yourpassword"

ansible_ssh_pass这个参数的名称是固定的,对应了/etc/ansible/hosts文件的vars.ansible_ssh_pass

[test]
10.0.0.1
10.0.0.2
#[test:vars]
#ansible_ssh_pass='yourpassword'

 

 

 

 

 

你可能感兴趣的:(在WEB端通过ansible-playbook+rundeck向服务器推送密钥的简单实现)