我是ansible的新用户。我正在尝试使用权限提升功能将一行添加到root拥有的文件中。
以下文档告诉我,我可以使用--ask-become-pass和become_user提示输入become_user密码,但我不知道如何使用它。
http://docs.ansible.com/ansible/become.html
我目前使用的代码如下:
- name: Add deploy to sudoers
remote_user: me
become: yes
become_method: su
ask_become_pass: true
lineinfile:
dest=/etc/somefile
line=sometext
regexp="^sometext"
owner=root
state=present
insertafter=EOF
create=True
这给了我错误: 错误:ask_become_pass不是Ansible任务或处理程序中的合法参数
有谁能让我知道我在这里做错了什么?
提前致谢。
答案 0 :(得分:8)
文档说ask_become_pass
是命令行参数。这意味着你必须在执行剧本时使用它:
ansible-playbook *playbook-name* --ask-become-pass
在这种情况下,ansible将要求输入密码。
另一个选项ansible_become_pass
可以在清单中使用,也可以作为extra_var使用。在那里你可以在执行剧本时设置密码。
答案 1 :(得分:0)
@ Capri90 展示了如何使用
<强> BUT 强>
当使用--ask-become-pass
时,用户需要每次都手动输入密码,所以要避免遵循以下步骤
而是使用以下配置
<强> playbook.yml 强>
---
- hosts: yo_my_ips
become: yes
become_user: root
tasks:
- name: Install latest version of "npm"
apt:
name: npm
state: latest
<强> ansible.cfg 强>
[defaults]
inventory = yo_ansible_inventory.txt
<强> yo_ansible_inventory.txt 强>
注意:ansible_become_pass
被触发时将使用sudo apt-get install npm
[all:vars]
ansible_connection=ssh
ansible_user=tom
ansible_become_pass=jerrypassword
[yo_my_ips]
192.168.1.105