gpt4 book ai didi

linux - 通过在ansible中切换到root用户来执行命令

转载 作者:太空狗 更新时间:2023-10-29 12:11:22 25 4
gpt4 key购买 nike

我正在使用 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

最佳答案

您需要 become directive .

例如,以 root 身份启动服务:

- name: Ensure the httpd service is running
service:
name: httpd
state: started
become: true

你也可以成为其他用户,比如apache用户:

- name: Run a command as the apache user
command: somecommand
become: true
become_user: apache

对于您的情况,它将是:

- name: install gnu parallel
command: chdir=/tmp/parallel-20140422 sudo ./configure && make && make install
become: true

关于linux - 通过在ansible中切换到root用户来执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com