我想通过 SaltStack将用户 postgres 的 $HOME 从 移动/var/lib
到。/home
以下是之前发生的步骤:
- postgres RPM 已安装
- $HOME 是 /var/lib
- 数据库已初始化
在这种情况下,命令式方式(告诉工具执行 X)比声明式方式(告诉工具您想要像 X 的结果)更容易。
至少这对我来说会更容易,但我猜 SaltStack 有一个我至今还不知道的隐藏功能。
有一个状态用户当前但我猜它不会将主目录从一个位置移动到另一个位置。
答案1
您可以设置一个状态来检查用户的主目录是否在正确的位置,如果不是,则执行一些命令将其移动到那里。例如:
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