ansible-playbook权限提升多种方式

Posted lihuanhuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible-playbook权限提升多种方式相关的知识,希望对你有一定的参考价值。

ansible-playbook 可以方便快速的批量执行部署和运维任务,对于不同的场景和服务器,需要使用不同的权限提升方式。

最佳实现:为了提高playbook的兼容性,跟功能没有直接关系的权限提升脚本,不要出现在palybook正文中,可以在ansible-playbook运行的时候,通过-e传入

场景一:我们有服务器的root密码,而且允许root直接登陆。

ansible-playbook -i \'aliyun.lihuanhuan.net,\' ./ansible_playbook_test/site.yml -e "ansible_ssh_user=\'root\' ansible_ssh_pass=\'password\'"
#切换到app_user,并执行java程序
- name: run app by java_user
  shell: java -jar hello.jar
  become: yes
  become_method: su
  become_user: app_user

场景二:我们有服务器的root密码,但是只允许普通用户user1使用su切换到root。

ansible-playbook -i \'aliyun.lihuanhuan.net,\' ./ansible_playbook_test/site.yml -e "ansible_ssh_user=\'user1\' ansible_ssh_pass=\'user1_password\' ansible_become=\'yes\' ansible_become_method=\'su\' ansible_become_user=\'root\' ansible_become_pass=\'root_password\' " -vvv
#切换到app_user,并执行java程序
- name: run app by java_user
  shell: java -jar hello.jar
  become: yes
  become_method: su
  become_user: app_user

场景三:我们只有服务器的app_user密码,而且只允许普通用户user1使用su切换到app_user。

ansible-playbook -i \'aliyun.lihuanhuan.net,\' ./ansible_playbook_test/site.yml -e "ansible_ssh_user=\'user1\' ansible_ssh_pass=\'user1_password\' ansible_become=\'yes\' ansible_become_method=\'su\' ansible_become_user=\'app_user\' ansible_become_pass=\'app_user_password\' " -vvv
#切换到app_user,并执行java程序
- name: run app by java_user
  shell: java -jar hello.jar
  become: yes
  become_method: su
  become_user: app_user

场景四:我们只有user1和password,但是允许使用特定的实用程序切换到root,例如:dzdo su -

ansible-playbook -i \'aliyun.lihuanhuan.net,\' ./ansible_playbook_test/site.yml -e "ansible_ssh_user=\'user1\' ansible_ssh_pass=\'user1_password\' ansible_become_exe=\'dzdo su -\' ansible_become=\'yes\' ansible_become_method=\'su\' ansible_become_user=\'root\' ansible_become_pass=\'user1_password\' " -vvv
#切换到app_user,并执行java程序
- name: run app by java_user
  shell: java -jar hello.jar
  become: yes
  become_method: su
  become_user: app_user

refer to https://docs.ansible.com/ansible/latest/user_guide/become.html?highlight=become%20method

以上是关于ansible-playbook权限提升多种方式的主要内容,如果未能解决你的问题,请参考以下文章

在域中获取域管理员权限的多种方法及一些缓解措施

如何在 python3.5 中以编程方式运行 ansible-playbook 时设置额外的变量?(Ansible 版本 - 2.8)

[ansible]牛刀小试,使用ansible-playbook role方式部署jdk环境

ansible-playbook变量

以多种方式在 SQL 查询中多次使用复杂语句

为软件提升管理员权限(mt.exe)