编写脚本 health_check.sh,要求:
头部规范: 包含
set -euo pipefail。
功能:
输出: 结果以 JSON 格式输出到标准输出 (STDOUT)。
{
"disk_usage": "45%",
"load_avg": 0.12,
"sshd_status": "active"
}验证: 在 WSL 和共享服务器上分别运行,确保兼容性。
使用 Ansible 管理你在共享服务器上的个人配置 (Dotfiles)。
准备:
my_config,包含一个自定义的
.bash_aliases 文件(写几个常用的 alias)。openssh-server:sudo apt install openssh-server;网络建议使用
Host-Only 适配器或 NAT 端口转发)。Inventory: 创建
hosts.ini,配置两个主机组:
[shared_server]
shared ansible_host=<共享服务器IP> ansible_user=<用户名>
[local_vm]
vm ansible_host=127.0.0.1 ansible_port=2222 ansible_user=<用户名>提示:
local_vm的端口根据你的 NAT 端口转发或 Host-Only IP 调整;密码敏感信息不要提交到版本库。
Playbook: 编写 deploy.yml(同一
Playbook 对所有主机生效——这正是 Ansible 的核心优势):
file 模块确保 ~/.config
目录存在。copy 模块将本地的 .bash_aliases
同步到目标主机的 ~/.bash_aliases。lineinfile 模块确保 ~/.bashrc 中包含
source ~/.bash_aliases (幂等性!)。执行:
先分别对单主机组执行,观察各自输出:
ansible-playbook -i hosts.ini deploy.yml --limit shared_server
ansible-playbook -i hosts.ini deploy.yml --limit local_vm然后对所有主机一次执行:ansible-playbook -i hosts.ini deploy.yml
验证: 再次运行 Playbook,确保两个主机均
changed=0 (验证幂等性);在虚拟机上检查
~/.bash_aliases 已同步、~/.bashrc 已包含
source 行。
提交 lab03/report.md:
hosts.ini 源码(脱敏密码)+
deploy.yml 源码 + Ansible
执行结果截图(包含共享服务器和虚拟机各自的第一次执行与第二次幂等执行对比)。.cast(建议命名 lab03/lab03.cast,便于后续转为
text 进行智能批改)。