stackbuilders.sb-debian-base
警告: 此库已被弃用且不再维护。不会再提供任何安全补丁、功能或错误修复,保留在 GitHub 上仅用于存档目的。如果您想使用它,建议您复制此存储库并在使用前审核代码库。如需更多信息,请通过 info@stackbuilders.com 联系我们。
推荐角色:
Stack Builders - Debian 基础
通用的 Debian 服务器镜像。此 Galaxy 需要 Ansible 2.7.0
支持的平台
Debian
- 10 (buster)
- 9 (stretch)
Ubuntu
- 18.04 (bionic)
- 16.04 (xenial)
重大变更:
- 此角色中移除了 Haskell 任务,因此
install_haskell_stack和install_haskell_dependencies变量不再使用。
如何使用此角色
当前版本使用 Ansible 流程控制 (当:foo 已定义) 来运行不同阶段的任务,但保留了一些有用的标签,例如设置主机名或创建部署目录。
首先,确保您创建了 requirements.yml 文件并添加对该存储库的引用,如下所示:
---
- src: [email protected]:stackbuilders/sb-debian-base.git
version: <标签、提交或分支>
path: external-roles
之后,您需要运行以下命令:
ansible-galaxy install -r requirements.yml
创建一个剧本
创建一个剧本文件,并在角色部分设置您需要运行的任务组。作为示例,您可以使用 tests/site.yml 或下面的示例:
# site.yml
- hosts: all
remote_user: foo
vars:
sb_debian_base_admin_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
sb_debian_base_deploy_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
roles:
- role: sb-debian-base
prebootstrap: yes
- role: sb-debian-base
bootstrap: yes
add_remove_keys: yes
vars:
sb_debian_base_deploy_user: deployer
sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
sb_debian_base_environment_variables:
ONE: "uno"
TWO: "dos"
您也可以运行临时任务,尽管这不是推荐的方式:
ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"
以如下方式运行剧本:
# 基础镜像
ansible-playbook -l local -i hosts site.yml -k -u root
# 管理员账户
ansible-playbook -l local -i hosts site.yml -u administrator
可用的任务组如下:
预引导 (prebootstrap)
此标签包含基本的设置任务,例如:
- 添加管理员用户
- 默认在 Debian 中为
admin,在 Ubuntu 中为ubuntu。您可以定义 变量 {{ sb_debian_base_admin_user }}
- 默认在 Debian 中为
- 更新软件包缓存
- 安装 sudo 包
- 为 sudo 组允许无需密码使用 sudo
- 为管理员用户设置授权 SSH 密钥
- 您需要定义 {{ sb_debian_base_admin_user_authorized_keys }}
引导 (bootstrap)
此标签包含更高级的设置任务,例如:
- 禁用 SSH 会话的密码认证
- 禁用 root 用户的 SSH 访问
- 设置主机名
- 您可以定义 {{ hostname }}
- 设置时区
- 您可以定义 {{ sb_debian_base_ntp_timezone }}
- 使用 systemd-timesyncd 启用 NTP
- 确保持久存储 journald 数据
- 升级所有软件包
- 安装基本软件包
- 例如:vim、tmux、htop、atop、tree、ufw、emacs、git、curl
- 安装补充软件包 - 不仅仅是 sb_debian_base_extra_packages
- 使用 UFW 启用防火墙
- 打开常规端口(例如 SSH 端口、HTTP 端口;默认是 SSH)
- 您可以定义 {{ ports }}
- 为特定 IP 打开特定端口
- 您可以定义 {{ port_ips }}
- 您可以通过
sb_debian_base_firewall: no禁用 UFW
- 打开常规端口(例如 SSH 端口、HTTP 端口;默认是 SSH)
- 设置和更新环境变量
- 您需要定义 {{ sb_debian_base_environment_variables }}
- 为部署用户创建 Unix 用户和组
- 您需要定义变量 {{ sb_debian_base_deploy_user }} (例如 deployer)
- 可选定义变量 {{ sb_debian_base_deploy_user_group }} (例如 deployer),否则,它将与 {{ sb_debian_base_deploy_user }} 相同
- 创建应用程序部署目录
- 为 GitHub 的“部署密钥”添加 SSH 密钥
- 为部署用户设置授权 SSH 密钥
- 您需要定义 {{ sb_debian_base_deploy_user_authorized_keys }}
- 确保 github.com 是已知主机
- 您需要定义 {{ sb_debian_base_deploy_user }}
- 此变量默认将 GitHub 添加为已知主机,但可以通过覆盖 {{ sb_debian_base_known_hosts }} 进行更改
- 设置全局 bash 历史配置,格式如下:
285 Thu 08 Aug 2019 01:43:40 PM UTC some command有关可用变量,请参见下文。
设置主机名 (set-hostname)
- 将主机名设置为特定主机的变量
- 您需要定义 {{ hostname }}
设置 bash 历史配置:
启用/禁用历史配置
sb_debian_base_bash_history: true在
sb_debian_base_bash_history_config:下- 设置保存在历史缓冲区中的行数
histsize: '5000' - 设置保存在历史文件中的行数
histfilesize: '3000' - 设置每个历史命令之前附加的时间格式(请参见
man history以获取完整选项)histtimeformat: '%c%t'
- 设置保存在历史缓冲区中的行数
创建应用程序目录 (create-app-directory)
- 创建应用程序部署目录
- 当定义了 {{ sb_debian_base_deploy_user }} 时
包含在此引导任务组中的外部依赖项 (Galaxies)
- kamaln7.swapfile(设置交换文件)
- 您可以定义变量 {{ sb_debian_base_swap_file_size }}(例如 2048MB)
- 安装 unattended-upgrades 仅用于安全补丁
- 您可以定义变量 {{ sb_debian_base_uu_email_alerts }}(例如 example@example.com)
更新授权 SSH 密钥 (add-remove-keys)
更新 SSH 授权密钥:
- 您需要定义以下包含管理员和部署用户的 SSH 公钥列表的变量:
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}
许可证
MIT,详情请见本存储库中的 LICENSE 文件。
作者信息
Justin Leitgeb,Stack Builders Inc.
安装
ansible-galaxy install stackbuilders.sb-debian-base许可证
mit
下载
14k
拥有者
Our team pushes the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.
