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
    用一个例子来演示会更加清晰
  • 相关阅读:
    为什么一个字节可以表示的有符号整数的范围是-128~+127?
    redis入门指南(一) ——简介及入门相关
    C Primer Plus(二)
    lua程序设计(一)
    证明:S = 1 + 1/2 + 1/4 + 1/8 + 1/16 + ·······,求证 S = 2
    C Primer Plus (一)
    C语言打印年历
    Spring IoC 自定义标签解析
    CentOS 7 Nacos 集群搭建
    CentOS 7 Zookeeper 和 Kafka 集群搭建
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/13853112.html
Copyright © 2011-2022 走看看