filviu.hetzner_installimage

Ansible角色:Hetzner Installimage

设置一个选择的操作系统和可选的全盘加密的Hetzner专用服务器。

CI

Stand With Ukraine

警告

服务器上的所有数据将被清除。

需求

  • 知道服务器的IP地址。
  • 服务器必须重启到救援模式。如果是新服务器,则需选择救援模式。
  • 在订购或激活救援模式时,请确保选择所有希望能够登录到启动环境的密钥,以输入加密密码。

角色变量

请参见 defaults/main.yml:

hetzner_installimage_cryptpassword: "password"

hetzner_installimage_disks:
  - "/dev/nvme0n1"
  - "/dev/nvme1n1"

# 创建EFI分区
# 新机器如EX-53似乎需要它
hetzner_installimage_esp: true

hetzner_installimage_swraid: 1
hetzner_installimage_swraidlevel: 1

hetzner_installimage_hostname: "custom"

hetzner_installimage_image: "/root/images/Debian-1010-buster-64-minimal.tar.gz"

# 允许登录到BusyBox环境以输入加密密码和启动服务器的公钥列表
# 如果未定义,将使用启用救援环境时使用的密钥(或如果是新机器时的订购密钥)
#
#hetzner_installimage_sshkeys: 
#  - "key1"

示例剧本

# hetzner-installimage.yml
---
- hosts: all

  roles:
    - role: filviu.hetzner_installimage
      hetzner_installimage_image: "/root/images/Debian-1010-buster-64-minimal.tar.gz"

如果您对默认设置满意,或者将其添加到您的剧本 hetzner-installimage.yml 中,您可以运行以下命令:

ansible-playbook -i "1.2.3.4," -u root -e "hetzner_installimage_cryptpassword=MY_SECURE_PASS" hetzner-installimage.yml

以避免存储您的加密密码(清除bash历史记录)并将机器添加到您的清单中。您也可以将密码加密在剧本中添加。

如果您很少需要设置带有SATA磁盘而非NVMe(默认)的机器,可以在命令行中覆盖磁盘列表,而不是创建单独的剧本:

ansible-playbook -i "1.2.3.4," -u root -e "hetzner_installimage_cryptpassword=MY_SECURE_PASS" -e '{"hetzner_installimage_disks":["/dev/sda","/dev/sdb"]}' hetzner-installimage.yml

注意事项

  • 确保您知道如何在重启后解锁服务器(即,您不能在最小环境中启用私有VLAN,您需要从Hetzner机器人防火墙允许端口22 ssh到公共接口等)。
  • 您无需将服务器添加到您的Ansible清单中。
  • 您要么定义ssh密钥变量,要么将其注释掉。如果您定义了它而且它是空的,角色将失败或您将无法登录以启动服务器。
  • 不提供逐步指导! 确保您存储密码、使用正确的SSH密钥,并且服务器已启动到救援模式且不包含任何您需要的数据
  • 仅在Debian 10和11上测试。也应该适用于Ubuntu。
  • Debian 10不支持ED25519密钥!

许可证

MIT / BSD

作者信息

该角色由Silviu Vulcan创建,以满足自己的需求。

关于项目

Hetzner Installimage Setup. Encryption supported.

安装
ansible-galaxy install filviu.hetzner_installimage
许可证
Unknown
下载
17.2k
拥有者
Sysadmin / DevOPS engineer. Probably doing devops before it was fashionable to be named that.