配置、加固并引导主机
将新服务器初始化到基线状态
配置、加固并引导主机 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
从空白服务器到基线
全新的主机就像一张白纸。common 角色会在应用代码部署之前,将每台服务器都设置为安全且一致的基线。🛠️
更新软件包缓存
先刷新软件包缓存,确保安装时使用当前版本。apt 模块可以在一个幂等任务中更新缓存。
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600安装基础软件包
使用 loop 在一个易读的任务中安装每台主机都需要的工具,例如 curl、vim 和 ufw。
- name: Base packages
ansible.builtin.apt:
name:
- curl
- ufw
- fail2ban
state: present创建部署用户
切勿使用 root 执行应用操作。user 模块会创建一个专用的部署账户,由它在之后负责拥有该应用。
- name: Create deploy user
ansible.builtin.user:
name: deploy
groups: sudo
shell: /bin/bash推送 SSH 密钥
使用 authorized_key 为部署用户授予基于密钥的登录权限,这样后续运行就无需密码即可连接。
- name: Add deploy key
ansible.posix.authorized_key:
user: deploy
key: "{{ deploy_pubkey }}"锁定 SSH
加固守护进程:禁用 root 登录和密码认证。lineinfile 模块可以安全且幂等地编辑 sshd_config。
- ansible.builtin.lineinfile:
path: /etc/ssh/sshd_config
regexp: "^PermitRootLogin"
line: "PermitRootLogin no"
notify: Restart sshd只开放必要的端口
使用 ufw 配置防火墙:允许 SSH 和应用端口,拒绝其余端口。默认采用最小暴露原则。
- community.general.ufw:
rule: allow
port: "22"
proto: tcp设置时区和 NTP
一致的时钟对于日志和证书非常重要。设置 timezone 并启用时间同步,让每台主机都对当前时间保持一致。
- community.general.timezone:
name: UTC将它设为处理程序
使用 notify 加处理程序,仅在配置发生变化时重启 sshd,绝不要在每次运行时都重启。
handlers:
- name: Restart sshd
ansible.builtin.service:
name: sshd
state: restarted以幂等方式运行
将 common 角色运行两次;第二次运行大多会报告 ok,而不是 changed。这证明您的基线确实已经收敛。
先建立基线,再部署应用
先进行加固,意味着应用会部署到已知良好且安全的主机上。引导是其他所有内容所依赖的基础。🔒
快速检查
一个选择可以让 SSH 配置编辑保持整洁。
回顾
您已经配置好了基线:软件包、一个部署用户、SSH 密钥、加固后的 sshd、防火墙和时间同步,并且全部采用幂等方式。✅
常见问题解答
「配置、加固并引导主机」课时是免费的吗?
是的 — 「配置、加固并引导主机」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「配置、加固并引导主机」这节课中我会学到什么?
将新服务器初始化到基线状态 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「配置、加固并引导主机」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。