zoukankan      html  css  js  c++  java
  • Ansible在AWS云平台的应用:公钥推送

           通常,业务及其均部署在云主机上,默认是不允许以root用户进行SSH登录的,并且root不提供密码登录,这时需要用一个具有sudo权限的用户来执行,默认一般是ec2-user,工作中经常会有这样一个需求:

    例:被控端机3个用户(ec2-usr、admin、和readonly),分别对应三套公私钥(分别对应不同的权限),业务及其数量维持在1200台以上

        需求分析:手动操作明显是不可能的,这时我们需要用ansible主控端进行公钥推送。我们可以利用Ansible的authorized_key模块来完成此项需求,authorized_key是Ansible官方推出的一个模块作用为【adds or removes an SSH authorized key】这里主要用于添加用户公钥,需要大家注意的是这里的公钥文件全部存放于ansible主控机的/home/yhc/ansible/ssh-copy-id/目录下,而且不需要担心被控端的[.ssh]目录是否建立,anthorized文件是否为600权限等,这些全部由authorized_key模块自动完成,是不是很人性化?

             playbook文件如下:

    ---
    - hosts: webserver
      remote_user: root
      tasks:
        - name: ensure users is present
            user: name={{ item }} state=perm
            with_items:
              - ec2-user
              - admin
              - readonly
        - name: ssh-copy-id user ec2-user
            authorized_key: user=ec2-user key='{{ lookup('file','/home/yhc/ansible/ssh-copy-id/example-master.pub') }}'
        - name: ssh-copy-id user ec2-user
            authorized_key: user=admin key='{{ lookup('file','/home/yhc/ansible/ssh-copy-id/example-master.pub') }}'
        - name: ssh-copy-id user ec2-user
            authorized_key: user=readonly key='{{ lookup('file','/home/yhc/ansible/ssh-copy-id/example-master.pub') }}'    

    备注:lookup是个插件 ,关于lookup的详细信息可查询 https://blog.csdn.net/qq_35887546/article/details/105249631

    人生苦短,我用Python
  • 相关阅读:
    sublime text2 中Emmet常用的技巧 和快捷键
    JS 常用函数
    javascript 事件模型 及 event对象属性总结
    Plant Ecology Journal Club 分享主题和文献列表, 1-7, 2018年秋
    Perl FASTA文件拆分合并
    筛选特定ID的条目信息
    计算可塑性指数RDPI
    【文献摘抄】2018年9月
    重金属在超富集植物与作物间作系统中的植物吸收和富集
    【R统计】主成分分析2——主成分回归
  • 原文地址:https://www.cnblogs.com/sunjinchao/p/14440698.html
Copyright © 2011-2022 走看看