管理用户置备
Pigsty需要一个管理用户,该用户能够从元节点上登陆其他节点,并命令。
如果您使用的是云服务器,通常在申请创建云服务器时,便会自动创建这样的管理用户给到客户。
Pigsty需要一个管理用户,该用户能够从元节点上SSH登陆其他节点,并执行命令。
- 可以在元节点上使用该用户
- 可以使用该用户SSH登陆所有被元节点(包括自身)
- 管理用户不是
postgres
或{{ dbsu }}
(使用DBSU作为管理员有安全隐患) - ssh 登陆免密码,sudo 命令免密码(或您知晓如何通过
-k
,-K
手工输入)
执行部署与变更时,您所使用的管理用户必须拥有所有节点的ssh
与sudo
权限。免密码并非必需,您总是可以在执行剧本时通过参数传入ssh与sudo的密码,甚至通过 -e
=<another_user>
使用其他用户来执行剧本。但Pigsty强烈建议为管理用户配置SSH免密码登陆与免密码sudo
。
Pigsty剧本nodes 可以在节点上创建管理用户,但这涉及到一个先有鸡还是先有蛋但的问题:为了在远程节点执行Ansible剧本,需要有一个管理用户。为了创建一个专用管理用户,需要在远程节点上执行Ansible剧本。 作为Bootstrap阶段的妥协,只要您有SSH登陆与SUDO权限,即使没有密码,也可以用于执行Ansible剧本,详情请参考
在元节点上,假设执行命令的用户名为vagrant
。
以vagrant
用户的身份执行以ssh-keygen
一路回车,会为生成公私钥对,用于登陆。
- 默认公钥:
~/.ssh/id_rsa.pub
安装密钥
将公钥添加至需要登陆机器的对应用户上:/home/vagrant/.ssh/authorized_keys
然后便可以通过该用户免密码SSH登陆远程机器。
假设用户名为vagrant
,则通过visudo
命令,或创建 文件添加以下记录:
则 vagrant 用户即可免密sudo
执行所有命令