Ansible 如何在单个剧本中成为root用户和应用程序用户

Ansible 如何在单个剧本中成为root用户和应用程序用户,ansible,Ansible,我需要设置一个应用程序,为此我需要以root用户身份安装Nginx,然后以不同的应用程序用户身份运行另一个Java应用程序 这样做的条件是,我有一个特权用户“priv_suer”,它有sudo,我正在以这个用户的身份运行playbook,因为我需要安装和配置Nginx。但我的应用程序用户与此用户“app_user”不同,后者是非特权应用程序专用用户 我面临的问题是,此应用程序用户需要密码才能成为应用程序用户。所以在我的例子中,我需要两个密码,一个是成为root用户,另一个是成为app_用户 我提

我需要设置一个应用程序,为此我需要以root用户身份安装Nginx,然后以不同的应用程序用户身份运行另一个Java应用程序

这样做的条件是,我有一个特权用户“priv_suer”,它有sudo,我正在以这个用户的身份运行playbook,因为我需要安装和配置Nginx。但我的应用程序用户与此用户“app_user”不同,后者是非特权应用程序专用用户

我面临的问题是,此应用程序用户需要密码才能成为应用程序用户。所以在我的例子中,我需要两个密码,一个是成为root用户,另一个是成为app_用户

我提到了,我能找到的唯一选择是“ansible_Before_password”


有人能帮我做这件事吗?

我想特权升级可以帮上忙。我的解决办法是:

  • 为运行Java应用程序的服务器和要安装Nginx的服务器声明不同的组。在您的情况下,这两个组可以共享相同的服务器

    下面我给出一个
    inventory.yml
    文件的示例:

  • playbook的示例如下所示:
  • 最后,使用
    -i
    选项提供的清单运行ansible playbook:

感谢您的快速回复,这听起来很酷。我想尝试一下。将很快更新状态。
all:
  children:
    app:
      hosts:
        127.0.0.1:
      vars:
        ansible_become_pass: app_user@123
        ansible_python_interpreter: /usr/bin/python3
        ansible_user: app_user

    nginx:
      hosts:
        127.0.0.1:
      vars:
        ansible_become_pass: root@123
        ansible_python_interpreter: /usr/bin/python3
        ansible_user: root
- hosts: app
  tasks:
    - name: Install Java app
      become: yes

- hosts: nginx
  tasks:
    - name: Install NGINX
      become: yes
ansible-playbook -i etc/ansible/inventory.yml etc/ansible/playbook.yml