我正在使用ansible 2.0.2.0从任何计算机更新我的静态网站。我的剧本只在localhost上运行,基本上有两部分:
apt
become: true
个任务command
任务没有become
。我更希望在同一个剧本中使用这两个部分,以便在切换计算机时不需要担心依赖性。理想情况下,我希望ansible检查是否已安装apt
软件包,并且只在需要安装密码时才询问密码。
到目前为止,我探索过的其他不太令人满意的替代品及其缺点如下所示:
sudo ansible-playbook ...
:将非特权部分作为root
运行,在不需要时询问密码; ansible-playbook --ask-become-pass ...
:总是询问sudo密码,即使不需要安装新软件包; ansible-playbook ...
:sudo: a password is required
失败。有没有办法将特权和非特权部分保存在同一个剧本中,而不必不必输入sudo密码,也不会给无特权部分提供不必要的权限?