dbbot 配置与单机部署演示

主线示例:在三台机器并发部署 MySQL 单机实例(8.4.9,端口 3306)。文末保留 5.7.39 / 3310 的旧版本示例,用来说明如何个性化部署旧版 MySQL。

建议在新环境做部署演示。

single_node.yml 默认会执行一部分 Linux 初始化动作,例如安装依赖、调整 SELinux、关闭 firewalld、下发 sysctl,不适合直接拿现成业务机做首次验证。

MySQL 9.7.x 使用 glibc2.28 包,不支持 CentOS/RHEL 7 系列;这类系统请使用 MySQL 8.4.x

1. 可选:提前上传安装包

common_config.ymlfcs_auto_download_packages: true,可自动下载。离线场景可手工上传到:

/usr/local/dbbot/mysql_ansible/downloads

当前推荐示例文件名:

mysql-8.4.9-linux-glibc2.17-x86_64-minimal.tar.xz

2. 配置主机清单 inventory/hosts.ini

[dbbot_mysql]
192.0.2.131 ansible_user=root ansible_ssh_pass="'你的密码'"
192.0.2.132 ansible_user=root ansible_ssh_pass="'你的密码'"
192.0.2.133 ansible_user=root ansible_ssh_pass="'你的密码'"

注意:

  • 当前仅支持 root 执行部署。
  • 密码写法建议保留 "'密码'" 形式。

3. 配置公共参数

编辑 playbooks/common_config.yml

mysql_version: "8.4.9"
mysql_port: 3306

advanced_config.yml 为高阶可选项,默认可不修改。

默认密码说明:

  • dbbot 公开默认密码遵循 Dbbot_<user>@8888 / Dbbot_<linux_user>@9999
  • 默认 fcs_allow_dbbot_default_passwd: false,因此如果你不改这些密码,单机演示时也会被 pre_tasks 拦截。
  • 生产环境应先修改这些密码,然后直接执行不带 -e 的标准命令。
  • 仅在非生产环境快速验证时,才建议临时显式允许公开默认密码。

4. 执行单机部署

若你已经把公开默认密码改成自己的密码,直接执行:

cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook single_node.yml

若你只是做非生产环境演示,暂时保留 dbbot 公开默认密码,可显式传入:

cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook single_node.yml -e '{"fcs_allow_dbbot_default_passwd": true}'

说明:

  • 上面的 -e 示例仅用于非生产环境部署。
  • 若不加 -e,请先把公开默认密码改成你自己的密码,否则会在 pre_tasks 阶段直接报错并终止。

脚本、CI 或 SSH one-liner 等非交互式场景,建议显式传入 dbbot_confirmation_input: "confirm"。单纯向标准输入写入 confirm 不能替代这个变量:

cd /usr/local/dbbot/mysql_ansible/playbooks
python3 /usr/local/dbbot/portable-ansible/ansible-playbook \
  single_node.yml \
  -e '{"fcs_allow_dbbot_default_passwd": true, "dbbot_confirmation_input": "confirm"}'

5. 验证实例

mysql -uadmin -h127.0.0.1 -P3306 -pDbbot_admin@8888 -e "select @@version"

默认启用快捷登录,也可:

su mysql
db3306

6. 旧版本个性化示例:5.7.39 / 3310

如果你要演示如何部署旧版 MySQL,可以把公共参数改成:

mysql_version: "5.7.39"
mysql_port: 3310

对应的离线包文件名是:

mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz

部署命令仍然是:

cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook single_node.yml -e '{"fcs_allow_dbbot_default_passwd": true}'

验证旧版实例:

mysql -uadmin -h127.0.0.1 -P3310 -pDbbot_admin@8888 -e "select @@version"
su mysql
db3310

部署前检查清单

  • inventory/hosts.ini 主机信息正确。
  • playbooks/common_config.yml 通用参数正确。
  • playbooks/vars/var_xxx.yml 专有参数按剧本填写。
  • (可选)playbooks/advanced_config.yml 高阶参数确认。