大佬教程收集整理的这篇文章主要介绍了Ansible非root sudo用户和“成为”特权升级,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
simple_playbook.yml:
--- - name: TesTing... hosts: all become: true become_user: david become_method: sudo tasks: - name: Just want to install sqlite3 for example... apt: name=sqlite3 state=present
我使用以下命令运行此playbook:
ansible-playbook -i inventory simple_playbook.yml --ask-become-pass
fatal: [123.45.67.89]: Failed! => {... Failed: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)\nE: Unable to lock the administration directory (/var/lib/dpkg/),are you root?\n",...}
为什么我被拒绝了?
附加信息
我正在运行Ansible 2.1.1.0并且我的目标是Ubuntu 16.04.如果我按照Ansible<使用remote_user和sudo选项v1.9,它工作正常,像这样: remote_user:david
sudo:是的
更新
因为APT需要root权限(请参阅错误:你是root用户吗?)并且您正在以david身份运行任务.
根据这些设置:
become: true become_user: david become_method: sudo
Ansible使用sudo方法成为大卫.它基本上使用sudo david运行其Python脚本.
这意味着david可以使用sudo-executable执行命令(部分或全部)来更改子进程(命令)的有效用户.如果没有给出用户名,则此进程以root帐户运行.
比较这两个命令的结果:
$sudo whoami root $sudo david whoami david
回到APT问题,您(从CLI)以及Ansible(使用您的帐户使用SSH连接)需要运行:
sudo apt-get install sqlite3
不:
sudo david apt-get install sqlite3
这将失败显示Ansible非常确切的消息.
--- - name: TesTing... hosts: all become: true tasks: - name: Just want to install sqlite3 for example... apt: name=sqlite3 state=present
以上是大佬教程为你收集整理的Ansible非root sudo用户和“成为”特权升级全部内容,希望文章能够帮你解决Ansible非root sudo用户和“成为”特权升级所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。