在 Ubuntu 上使用非根用户通过 SaltStack 安装 Java/Tomcat
Installing Java/Tomcat via SaltStack using non-root user on Ubuntu
我可以做到以下几点
- 安装 salt master、minion(使用 root 用户)
- 登录master机器并执行salt命令将java / tomcat安装到minion服务器
- 结果:java/tomcat 通过 root 用户安装
我想做的是
- 通过用户名 'tomcatuser'
在 minion 服务器中安装 java / tomcat
根据我的理解,唯一的方法是通过 tomcatuser 安装我的 minion。
- 我的理解对吗?
- 还有其他方法吗?
我认为您混淆了 saltstack 控制器及其控制应用程序配置的方式。
要使 salt master 和 minion 进行通信,您需要以 root 身份启动这两个服务,以控制大部分配置过程。然后,您可以在 sls 配置中为应用程序部署指定用户和组。
现在来到你的Tomcat/java/whatever包,你可以参考salt stack的配置,来指定你自己的配置甚至启动的用户组(有其他修改)。例如
Deploy foo configuration:
file.managed:
- name: /etc/foo.conf
- source:
- salt://foo.conf
- user: foo
- group: users
- mode: 644
然后启动您的 tomcat,您可以使用 crontab 执行类似的操作并指定您想要的用户(只要它不在小于 1024 的服务端口下加载)。或者您可以检查 salt.states.tomcat 是否有助于启动服务:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.tomcat.html
我可以做到以下几点
- 安装 salt master、minion(使用 root 用户)
- 登录master机器并执行salt命令将java / tomcat安装到minion服务器
- 结果:java/tomcat 通过 root 用户安装
我想做的是
- 通过用户名 'tomcatuser' 在 minion 服务器中安装 java / tomcat
根据我的理解,唯一的方法是通过 tomcatuser 安装我的 minion。
- 我的理解对吗?
- 还有其他方法吗?
我认为您混淆了 saltstack 控制器及其控制应用程序配置的方式。
要使 salt master 和 minion 进行通信,您需要以 root 身份启动这两个服务,以控制大部分配置过程。然后,您可以在 sls 配置中为应用程序部署指定用户和组。
现在来到你的Tomcat/java/whatever包,你可以参考salt stack的配置,来指定你自己的配置甚至启动的用户组(有其他修改)。例如
Deploy foo configuration:
file.managed:
- name: /etc/foo.conf
- source:
- salt://foo.conf
- user: foo
- group: users
- mode: 644
然后启动您的 tomcat,您可以使用 crontab 执行类似的操作并指定您想要的用户(只要它不在小于 1024 的服务端口下加载)。或者您可以检查 salt.states.tomcat 是否有助于启动服务:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.tomcat.html