JoergFiedler.freebsd-jail-host
freebsd-jail-host
该角色用于创建一个 FreeBSD 系统,供托管一个或多个 jail 使用。还有专门针对 jail 的角色,可以与此角色结合使用,来创建一个 jailed www、db 或邮件服务器。您可以根据需要组合这些 jail,创建一个可以托管多个 WordPress 安装、单一邮件服务器或您想在 jail 中运行的任何其他服务的服务器。
要求
该角色旨在与全新的 FreeBSD 安装一起使用。可以使用提供者为 VirtualBox 和 AWS 的 Vagrant Box。
使用方法
该项目包含一个 Vagrantfile
。输入
vagrant up
您将享受一个全新的 FreeBSD 机器的运行。您现在可以手动创建 jail,或使用我创建的其它角色之一。
角色变量
网络
host_net_ext_if
服务器的外部接口。默认值: '{{ ansible_default_ipv4.interface }}'
。
host_net_ext_ip
服务器的外部 IP 地址。默认值:{{ ansible_default_ipv4.address }}'
。
host_net_int_if
将添加 jail 的 IP 地址的内部接口。默认值:lo0
。
host_net_int_ip
服务器的内部 IP 地址。该地址也会添加到内部接口。默认值:10.1.0.1
。
host_net_int_net
jail 内部网络的子网掩码。用于允许 UDP 通过 pf 以到达 syslogd。默认值:'10.1.0.1/24'
。
host_net_priv_if
设置此变量以配置主机的私有网络接口。接口本身通过 DHCP 配置,但请确保变量 host_net_priv_ip
设置为 DHCP 请求返回的值。默认值:''
。
host_net_priv_ip
设置用于私有网络接口的 IP。即使接口通过 DHCP 自行配置,仍需在此添加 DHCP 请求返回的 IP。默认值:''
。
磁盘/ZFS/iocage
host_home_zpool_name
应用于 /home
的 ZPool。默认值:'tank'
。
host_ioc_release_version
iocage 获取/使用的 FreeBSD 版本,默认为主机发布版本。默认值:{{ ansible_distribution_version }}-RELEASE
。
host_ioc_zpool_name
iocage 应使用的 ZFS 池名称。默认值:tank
。
host_ioc_zpool_devices
如果要创建用于 iocage(jails 主页)的 ZFS 池,此处指定要用于池的设备的空格分隔列表。没有有效的默认值。如果 ZFS 池尚不存在,您必须指定。默认值:无。
host_srv_zpool_name
应用于 /srv
文件夹的 ZFS 池名称。默认值:tank
。
host_srv_zpool_devices
如果要创建用于 /srv
文件夹的 ZFS 池,此处指定要用于池的设备的空格分隔列表。没有有效的默认值。如果 ZFS 池尚不存在,您必须指定。默认值:无。
SSH
host_sshd_authorized_keys_file
包含用于认证 sshd 用户的公钥的文件。默认为不安全的 vagrant 公钥:'vagrant_pub_key'
。
host_sshd_port
sshd 监听的端口。默认值:22
。
host_sshd_user
允许通过 ssh 访问此服务器的用户名。默认值:vagrant
。
SSMTP
如果变量 use_ssmtp
被设置,则该功能才会激活。
ssmtp_auth_pass
用于执行 SMTP AUTH 的密码。如果为空,则不进行身份验证。默认值:''
。
ssmtp_auth_user
用于通过 SMTP 服务器进行身份验证的用户名。如果为空,则不进行 SMTP AUTH。默认值:''
。
ssmtp_mailhub
系统邮件将转发到此邮件主机。有关更多信息,请参见 ssmtp 手册页。
默认值:'mail.maildrop.cc'
。
ssmtp_rewrite_domain
通过此变量重写 ssmtp 发送邮件的域部分。有关更多信息,请参见 ssmtp 手册页。
默认值:'maildrop.cc'
。
ssmtp_root
系统邮件将转发到该账户。有关更多信息,请参见 ssmtp 手册页。
默认值:'freebsd-jail-host'
。
ssmtp_use_starttls
在启动 SSL 协商前使用 STARTTLS。默认值:'no'
。
ssmtp_use_tls
与 SMTP 服务器通信时使用 TLS。默认值:'no'
。
Tarsnap
tarsnap_enabled
设置为 yes
以使用 tarsnap 进行备份。默认值:no
。
tarsnap_keyfile
使用 tarsnap 备份的密钥文件。有关如何创建密钥文件,请参阅 tarsnap 文档。默认值:''。
软件包存储库
host_build_server_enabled
在 /usr/local/etc/pkg/repos/
中使用以下两个变量提供的 URL 和公钥创建一个附加存储库。默认值:no
。
host_build_server_pubkey
用于验证下载软件包的附加存储库的公钥。默认值:无。
host_build_server_url
附加存储库的 URL。默认值:无。
其他
host_use_syslogd_server
设置为 true
将本地 syslog 写入的日志消息转发到 jail 内的 syslog 服务器。使用变量 host_syslogd_server
指定 IP 地址。默认值:false
。
host_syslogd_server
转发消息的 syslog 服务器的 IP 地址。应在托管的一个 jail 内运行。默认值:``。
host_timezone
服务器所在的时区。默认值:'Europe/Berlin'
。
依赖关系
无。
示例剧本
示例剧本,使用此角色设置 EC2 实例,覆盖默认值。
- hosts: all
become: true
roles:
- role: 'JoergFiedler.freebsd-jail-host'
作者信息
如果您喜欢该项目或有改进的想法,请在 GitHub 上提出问题。谢谢。