3.7. 创建具有 sudo 访问权限的 Ansible 用户
您可以在存储集群的所有节点上创建一个具有无密码 root
访问权限的 Ansible 用户,以运行 cephadm-ansible
playbook。Ansible 用户必须能够以具有 root
权限的用户身份登录所有 Red Hat Ceph Storage 节点,以安装软件并创建配置文件而不提示输入密码。
先决条件
- 所有节点的根级别访问权限。
- 对于 Red Hat Enterprise Linux 9,要以 root 用户身份登录,请参阅在 Red Hat Enterprise Linux 9 中以 root 用户身份启用 SSH 登录
流程
以
root
用户身份登录节点:语法
ssh root@HOST_NAME
将 HOST_NAME 替换为 Ceph 节点的主机名。
示例
[root@admin ~]# ssh root@host01
出现提示时,输入
root
密码。创建一个新的 Ansible 用户:
语法
adduser USER_NAME
将 USER_NAME 替换为 Ansible 用户的新用户名。
示例
[root@host01 ~]# adduser ceph-admin
重要不要使用
ceph
作为用户名。ceph
用户名保留用于 Ceph 守护进程。整个集群中的统一用户名可以提高易用性,但避免使用明显的用户名,因为入侵者通常使用它们进行暴力攻击。为这个用户设置一个新密码:
语法
passwd USER_NAME
将 USER_NAME 替换为 Ansible 用户的新用户名。
示例
[root@host01 ~]# passwd ceph-admin
出现提示时,输入新密码两次。
为新创建的用户配置
sudo
访问权限:语法
cat << EOF >/etc/sudoers.d/USER_NAME $USER_NAME ALL = (root) NOPASSWD:ALL EOF
将 USER_NAME 替换为 Ansible 用户的新用户名。
示例
[root@host01 ~]# cat << EOF >/etc/sudoers.d/ceph-admin ceph-admin ALL = (root) NOPASSWD:ALL EOF
为新文件分配正确的文件权限:
语法
chmod 0440 /etc/sudoers.d/USER_NAME
将 USER_NAME 替换为 Ansible 用户的新用户名。
示例
[root@host01 ~]# chmod 0440 /etc/sudoers.d/ceph-admin
- 在存储集群中的所有节点上重复上述步骤。
其它资源
- 有关创建用户帐户的更多信息,请参阅 Red Hat Enterprise Linux 9 指南中的 配置基本系统设置 一章中的 管理用户帐户 部分。