管理用户置备

    Pigsty需要一个管理用户,该用户能够从元节点上登陆其他节点,并命令。

    如果您使用的是云服务器,通常在申请创建云服务器时,便会自动创建这样的管理用户给到客户。

    Pigsty需要一个管理用户,该用户能够从元节点上SSH登陆其他节点,并执行命令。

    • 可以在元节点上使用该用户
    • 可以使用该用户SSH登陆所有被元节点(包括自身)
    • 管理用户不是postgres{{ dbsu }} (使用DBSU作为管理员有安全隐患)
    • ssh 登陆免密码,sudo 命令免密码(或您知晓如何通过-k,-K手工输入)

    执行部署与变更时,您所使用的管理用户必须拥有所有节点的sshsudo权限。免密码并非必需,您总是可以在执行剧本时通过参数传入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执行所有命令