我正在编写 Ansible 剧本来执行我的一些任务。在我的一项任务中,我需要切换到特定目录,然后使用 sudo 执行命令,但我需要先切换到 root 用户来完成所有这些事情,否则它将无法工作。所以总的来说,这就是我在没有 ansible 的情况下所做的:
david@machineA:/tmp/parallel-20140422$ sudo su
root@machineA:/tmp/parallel-20140422# sudo ./configure && make && make install
完成上述步骤后,我看到 GNU 并行库已正确安装在我的系统中。但是通过使用 Ansible 的以下步骤,我根本没有看到我的 GNU 库被安装。
- name: install gnu parallel
command: chdir=/tmp/parallel-20140422 sudo ./configure && make && make install
现在我的问题是如何切换到 root 用户并执行特定命令。我正在运行 Ansible 1.5.4,看起来我无法升级。我什至尝试了以下方法,但仍然无法正常工作:
- name: install gnu parallel
command: chdir=/tmp/parallel-20140422 sudo ./configure && make && make install
sudo: true
sudo_user: root
我正在使用以下命令运行我的剧本:
ansible-playbook -e 'host_key_checking=False' setup.yml -u david --ask-pass --sudo -U root --ask-sudo-pass