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
    用一个例子来演示会更加清晰
  • 相关阅读:
    oracle 自动备份
    oracle 常用操作语句
    数据库创建及使用注意事项
    oracle 导入 导出 备份
    http://blog.sina.com.cn/s/blog_5fc8b3810100iw9n.html
    利用普通工具编译的第一个Servlet
    对java:comp/env的研究(转)
    MyEclipse配置tomcat、jdk和发布第一个web项目
    构建 SSH 框架(转)
    Java Project和Web Project
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/13853112.html
Copyright © 2011-2022 走看看