部署 dbbot 和配置 Ansible
dbbot 内置绿色版 Ansible(2.10.17),目标是减少环境侵入和版本冲突。标准流程只有两步:
- 解压 dbbot。
- 注册并验证内置 Ansible。
dbbotctl env setup不只是写 alias。它会按控制机环境安装或升级运行依赖,例如
python3、SELinux Python 绑定和sshpass,并写入 shell 初始化文件。建议在专门的控制节点或新环境执行。
1. 下载并解压 dbbot
cd ~
dbbot_version="$(basename "$(curl -fsSLI -o /dev/null -w '%{url_effective}' https://github.com/fanderchan/dbbot/releases/latest)")"
curl -fL -O "https://github.com/fanderchan/dbbot/releases/download/${dbbot_version}/dbbot-${dbbot_version}.tar.gz"
tar -zxvf "dbbot-${dbbot_version}.tar.gz" -C /usr/local
推荐安装路径:/usr/local。
如果你使用 wget 下载,请先确认系统已安装 wget;最小化 CentOS 7 环境通常默认没有 wget。
解压完成后,建议先确认核心目录:
ls -1 /usr/local/dbbot
典型输出应包含:
binmysql_ansibleclickhouse_ansiblemonitoring_prometheus_ansibleportable-ansible
建议先做一次本地自检:
/usr/local/dbbot/bin/dbbotctl version
/usr/local/dbbot/bin/dbbotctl doctor
2. 注册绿色版 Ansible
/usr/local/dbbot/bin/dbbotctl env setup
source ~/.bashrc
dbbotctl env setup 会调用内置的 setup_portable_ansible.sh,自动补齐依赖,并向 ~/.bashrc 写入:
ansible/ansible-playbookalias/usr/local/dbbot/bin到PATH
在 Linux 控制机上,这一步可能还会:
- 安装或升级系统
python3 - 安装 SELinux Python 绑定
- 安装或写入
sshpass - 修改
~/.bashrc
最小化 CentOS 7 通常默认没有 python3。这种情况下 dbbotctl env setup 会提示安装 python3;直接按回车或输入 y 后会通过系统包管理器安装并继续后续配置。
验证安装:
ansible --version
ansible / ansible-playbook alias 主要面向交互式 shell。脚本、CI、SSH one-liner 等非交互场景中,shell 可能不会展开 alias,建议优先使用绿色版 Ansible 的显式路径:
python3 /usr/local/dbbot/portable-ansible/ansible --version
python3 /usr/local/dbbot/portable-ansible/ansible-playbook --version
预期关键点:
- Ansible 版本:
2.10.17 - Python 版本:
3.x
3. 这套绿色版 Ansible 是怎么构建的
当前发行包中的绿色版 Ansible 由 make_ansible_portable 构建,核心命令如下:
./build.sh \
--python /usr/bin/python3 \
--source ansible-base==2.10.17 \
--without-vault \
--without-yaml-c-extension \
--clean-output \
--extra-collection 'ansible.posix:==1.5.4'
可以这样理解:
--python /usr/bin/python3:指定构建和自测时使用的控制机 Python。--source ansible-base==2.10.17:选择2.10代 Ansible 对应的官方ansible-base包。--without-vault:移除ansible-vault入口以及cryptography/cffi依赖链,减小体积;构建结果不再支持 vault。--without-yaml-c-extension:移除PyYAML的 C 扩展,回退到纯 Python YAML 实现。--clean-output:重新构建前清理同名旧产物。--extra-collection 'ansible.posix:==1.5.4':把固定版本的ansible.posixcollection 直接打进 bundle。
常见说明
- dbbot 的 Playbook 主要基于 Python 3 完整测试。
- 目标机器仅有 Python 2 时,Ansible 会按实际环境进行兼容处理。
- MySQL 与 ClickHouse 子目录共用同一套控制节点环境,不需要分别安装多套 Ansible。
- 如果你需要手工查看底层脚本,可直接查看
/usr/local/dbbot/libexec/dbbotctl/setup_portable_ansible.sh。 - 后续升级同样建议通过
dbbotctl执行,而不是手工删除旧目录再回拷配置。详见:dbbot 升级与回滚。
下一章:dbbot 配置与单机部署演示