将用户postgres的$ HOME从/ var / lib通过SaltStack移动到/ home

我想通过SaltStack把用户postgres的$ HOME从/var/lib/home

以下是发生之前的步骤:

  1. postgres RPM被安装
  2. $ HOME是/ var / lib
  3. 数据库被初始化

在这种情况下,一个必要的方法(告诉工具做X)比声明性的方式(告诉工具,你想要的结果看起来像X)更容易。

至less这对我来说会更容易些,但是我猜SaltStack有一个隐藏的function,我到目前为止还不知道。

有一个状态user.present,但我想它不会将主目录从一个位置移动到下一个。

您可以设置一个状态来检查用户的主目录是否在正确的位置,如果没有,执行一些命令将其移动到那里。 就像是:

 make sure postgresql home dir is under /new: - cmd.run: - unless: 'test "$(getent passwd postgresql | cut -d: -f6)" = "/new/postgresql"' - name: | service postgresql stop usermod --home /new/postgresql --move-home postgresql service postgresql start