页次: 1
如题,便于管理多个云服务器用。
找了很久找不到相关的内容。arch 有什么手段可以做到一个配置文件配置整个系统吗?到不需要控制什么软件版本,只想要自动配置 root 密码,nanorc,各种 systemd service, timer,sshd_config 之类的配置文件就好。
PS. 为什么不用nixos?因为它太大了。装好后占用3g,arch只占用1g。
目前我是想用 shell 脚本全自动配置,可行吗?
离线
#!/usr/bin/env bash
# 生成随机复杂密码
ROOT_PASSWORD=$(openssl rand -base64 12)
echo "Root password: $ROOT_PASSWORD"
# 设置 root 密码
echo "root:$ROOT_PASSWORD" | chpasswd
# 配置 nanorc
cat << EOL > /etc/nanorc
set autoindent
set tabsize 4
EOL
# 配置 systemd 服务和定时器
cat << EOL > /etc/systemd/system/myservice.service
[Unit]
Description=My Custom Service
[Service]
ExecStart=/usr/bin/mycommand
[Install]
WantedBy=multi-user.target
EOL
cat << EOL > /etc/systemd/system/mytimer.timer
[Unit]
Description=Run My Custom Service every hour
[Timer]
OnCalendar=hourly
[Install]
WantedBy=timers.target
EOL
# 启用服务和定时器
systemctl enable myservice.service
systemctl enable mytimer.timer
# 配置 sshd_config
cat << EOL > /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
EOL
# 重启 SSH 服务
systemctl restart sshd
echo "System configuration complete!"
这个脚本会自动生成一个复杂的 root 密码,并配置 nanorc、systemd 服务和定时器,以及 sshd_config 文件。你可以根据需要修改和扩展这个脚本。
至于 NixOS 的问题,你可以向 NixOS 社区寻求帮助。
离线
#!/usr/bin/env bash # 生成随机复杂密码 ROOT_PASSWORD=$(openssl rand -base64 12) echo "Root password: $ROOT_PASSWORD" # 设置 root 密码 echo "root:$ROOT_PASSWORD" | chpasswd # 配置 nanorc cat << EOL > /etc/nanorc set autoindent set tabsize 4 EOL # 配置 systemd 服务和定时器 cat << EOL > /etc/systemd/system/myservice.service [Unit] Description=My Custom Service [Service] ExecStart=/usr/bin/mycommand [Install] WantedBy=multi-user.target EOL cat << EOL > /etc/systemd/system/mytimer.timer [Unit] Description=Run My Custom Service every hour [Timer] OnCalendar=hourly [Install] WantedBy=timers.target EOL # 启用服务和定时器 systemctl enable myservice.service systemctl enable mytimer.timer # 配置 sshd_config cat << EOL > /etc/ssh/sshd_config PermitRootLogin yes PasswordAuthentication yes EOL # 重启 SSH 服务 systemctl restart sshd echo "System configuration complete!"
这个脚本会自动生成一个复杂的 root 密码,并配置 nanorc、systemd 服务和定时器,以及 sshd_config 文件。你可以根据需要修改和扩展这个脚本。
至于 NixOS 的问题,你可以向 NixOS 社区寻求帮助。
很感谢,我会参考的
离线
雀食不是很能搞的出来,搞了个半成品 https://fars.ee/-IY0
离线
推荐参考 vps2arch 脚本。
1. 不太清楚腾讯云的情况,但网络 IP 应该是固定吧?
2. 修改 root 密码使用 passwd 命令,Arch Linux 默认使用 yescrypt 密码哈希算法。
3. 推荐使用 systemd-resolved,支持 DNS over TLS。
4. 不需要安装 intel-ucode。
5. 看起来是用 root 用户和密钥认证登录 SSH,不需要设置 PermitRootLogin 为 yes,默认的 prohibit-password 就可以了。
6. Caddy 配置建议使用单独的文件,然后用 cp 命令,不推荐用 sed 修改。
最近编辑记录 kle (2024-08-05 21:25:22)
离线
配置管理软件了解一下?
这多少有点太正式化了,其实我也没几台服务器,而且还分别部署了不同东西的。真要说我一个一个文件的cp再tar再上传云盘,也不过十来分钟的功夫而已。
离线
推荐参考 vps2arch 脚本。
1. 不太清楚腾讯云的情况,但网络 IP 应该是固定吧?
2. 修改 root 密码使用 passwd 命令,Arch Linux 默认使用 yescrypt 密码哈希算法。
3. 推荐使用 systemd-resolved,支持 DNS over TLS。
4. 不需要安装 intel-ucode。
5. 看起来是用 root 用户和密钥认证登录 SSH,不需要设置 PermitRootLogin 为 yes,默认的 prohibit-password 就可以了。
6. Caddy 配置建议使用单独的文件,然后用 cp 命令,不推荐用 sed 修改。
网络ip是固定的
我这就是从arch里复制出来的hash的,这样搞便于旧机子到期,新机子统一设置而已
感谢,systemd-resolved 我研究研究
服务器为啥不需要 intel-ucode 呢?不懂这方面
PermitRootLogin 是为了便于 sshkey 丢了之后,改一下 PasswordAuthentication no 临时开密码登陆
caddy 雀食是使用了单独文件在 conf.d 的,不过 Caddyfile 中默认带有 http:{} 的处理,直接新增配置文件处理 http:{} 会冲突,所以 sed 配置了一下。
离线
页次: 1