DevOps - Server Manage Practice

不要用 root

添加一个运维的组:

1
2
# deployer
$ groupadd devops

添加用户,加入到新建的组中:

1
2
3
4
# 添加一个用户 ares, -G 加到devops组里,-m 创建用户目录,-N 不创建同名 group。
$ useradd ares -G devops -N -m
# 给用户设置一个密码
$ passwd ares

## 给账号免 sudo 的能力

在运维发布时,推荐使用 passwordless sudo。这样非 root 用户也可以直接使用 sudo 命令,而不必通过 PTY 来输入密码。Guide:

其实就是在系统里,给指定用户赋上某些指令的 sudo 权限。在 Ubuntu 下,修改 /etc/sudoers 来添加要使用的命令。

1
2
3
4
5
6
7
8
9
10
/etc/sudoers

# 给指定用户,添加 passwordless 命令
ares ALL=NOPASSWD:/usr/sbin/service, /bin/ln

# 也可以设置一个组
%devops ALL=NOPASSWD:/usr/sbin/service, /bin/ln

# 也可以将所有程序都设置为不要密码,不过太不安全,不建议
#ares ALL=(ALL) NOPASSWD: ALL

## ssh-copy-id

输入服务器用户密码后就 deploy 就进行了。不想每次都输密码,ssh-copy-id 可能是你想要的。

每次运行 cap 都要输入密码,可以将本地的 ssh公钥 存到 server 上,就可以省下很多时间。

ssh-copy-id 就是这么一个将本机的公钥复制到远程机器的 authorized_keys 文件的工具,其也能让你拥有远程机器的 home, ~./ssh , 和 ~/.ssh/authorized_keys 的权利。

首先本地机器上要创建 ssh key

1
$ ssh-keygen
1
$ ssh-copy-id aers@192.168.1.1

macOS 上 ssh-copy-id 不是默认安装的,可通过 Homebrew 进行安装

1
$ brew install ssh-copy-id