zoukankan      html  css  js  c++  java
  • ansible用普通用户执行root权限的命令 + script模块

    0.禁止root登陆
    1.用sudo的用户登陆
    2.执行root的权限

    3.cat  /etc/ansible/hosts

    # Ex 2: A collection of hosts belonging to the 'webservers' group
    [test]
    10.0.0.3 ansible_ssh_user="dev" ansible_ssh_pass="do2admin" ansible_become_pass="ccsds@AA2123"
    10.0.0.7 ansible_ssh_user="dev" ansible_ssh_pass="do2admin" ansible_become_pass="ccsds@AA2123"

    -------------------------------------------------

    [frame]
    10.0.0.4
    [frame:vars]
    ansible_ssh_user="dev"
    ansible_ssh_pass="do2admin"

    -------------------------------------------------

    [root@frontend-1 yum_with_items]# ansible frame -m shell -a 'whoami'
    10.0.0.4 | CHANGED | rc=0 >>
    dev

    
    
    -------------------------------------------------
     

    4.用普通用户执行root的任务

    ansible playbook远程切换用户执行

    [root@frontend-1 deploy]# cat root_cannot_login.yaml
    ---
    - name : root can not login and other user login and sudo as root
      hosts: all
      gather_facts: False
      become: yes
      become_user: root
      become_method: sudo
      tasks:
      - name: create test file as normal user
        shell: echo 'hahahahahhahah  how to show command run results'  > /tmp/fuckdevsudotoroot1.txt
    
      - name: create new user
        shell: sudo useradd aftergege
    
      - name: test use special charactor
        shell: sudo echo 'do2admin'|passwd --stdin aftergege
    
      - name: Show debug info
        debug: var=result.stdout verbosity=3

    参考:https://blog.csdn.net/change_can/article/details/105559227

    # 在使用verbosity: 3的时候输出debug结果
    ansible-playbook ./debug.yaml -i /root/ansible-code/inventory/inventory.ini --private-key=/root/.ssh/ansible -vvv
     
    3.远程执行脚本
    [root@frontend-1 deploy]# cat to_adduser_script.yaml
    ---
    - name: login to adduser at remote host as normal user
      gather_facts: FALSE
      hosts: all
      become: yes
      become_user: root
      become_method: sudo
      tasks:
    #  - name: copy script to remote host
    #    copy: src=/opt/deploy/adduser.sh dest=/tmp/adduser.sh
      - name: execute scripts at remote hosts
        script: /tmp/adduser.sh
    用一个例子来演示会更加清晰
  • 相关阅读:
    新mac本安装Homebrew姿势(大前提:需要FQ)
    git 常用命令
    elementUI 函数自定义传参
    微信小程序避坑指南——echarts层级太高/层级遮挡
    前端向后端传递formData类型的二进制文件
    elemetnUI表格分别给列表每一个按钮加loading
    前端获取cookie,并解析cookie成JSON对象
    elementUI 输入框用户名和密码取消自动填充
    AOP面向切面编程
    关于ArrayList、HashSet、HashMap在并发下不安全的实例以及解决办法
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/13853112.html
Copyright © 2011-2022 走看看