ITPub博客

首页 > 数据库 > > 使用 DM-Ansible 部署 DM 集群

使用 DM-Ansible 部署 DM 集群

作者:浪花小雨滴 时间:2020-05-15 15:19:28 0 删除 编辑

DM-Ansible 是 PingCAP 基于 Ansible 的 Playbooks 研发的 DM (Data Migration) 集群部署工具。本文将介绍如何使用 DM-Ansible 快速部署 DM 集群。

准备工作

在开始之前,先确保您准备好了以下配置的机器:

  1. 部署目标机器若干,配置如下:

    • CentOS 7.3 (64-bit) 或更高版本,x86_64 架构(AMD64)
    • 机器之间内网互通
    • 关闭防火墙,或开放服务端口
  2. 一台中控机,配置如下:

    • 包含 Python 2.7 的 CentOS 7.3(64-bit)或更高版本
    • Ansible 2.5 或更高版本
    • 互联网访问

第 1 步:在中控机上安装依赖包

注意:

请确保使用 root 账户登录中控机。

根据中控机的操作系统版本,运行相应命令如下:

  • CentOS 7:

    yum -y install epel-release git curl sshpass &&
    yum -y install python-pip
    
  • Ubuntu:

    apt-get -y install git curl sshpass python-pip
    

第 2 步:在中控机上创建 tidb 用户,并生成 SSH 密钥

注意:

请确保使用 root 账户登录中控机。

  1. 创建 tidb 用户。

    useradd -m -d /home/tidb tidb
    
  2. 为 tidb 用户设置密码。

    passwd tidb
    
  3. 在 sudo 文件尾部加上 tidb ALL=(ALL) NOPASSWD: ALL,为 tidb 用户设置免密使用 sudo。

    visudo
    
    tidb ALL=(ALL) NOPASSWD: ALL
    
  4. 生成 SSH 密钥。

    执行以下 su 命令,将登录用户从 root 切换至 tidb。

    su - tidb
    

    为 tidb 用户创建 SSH 密钥。当提示 Enter passphrase 时,按 Enter 键。命令成功执行后,生成的 SSH 私钥文件为 /home/tidb/.ssh/id_rsa,SSH 公钥文件为/home/tidb/.ssh/id_rsa.pub。

    ssh-keygen -t rsa
    
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/tidb/.ssh/id_rsa):
    Created directory '/home/tidb/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/tidb/.ssh/id_rsa.
    Your public key has been saved in /home/tidb/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:eIBykszR1KyECA/h0d7PRKz4fhAeli7IrVphhte7/So tidb@172.16.10.49
    The key's randomart image is:
    +---[RSA 2048]----+
    |=+o+.o.          |
    |o=o+o.oo         |
    | .O.=.=          |
    | . B.B +         |
    |o B * B S        |
    | * + * +         |
    |  o + .          |
    | o  E+ .         |
    |o   ..+o.        |
    +----[SHA256]-----+
    

第 3 步:下载 DM-Ansible 至中控机

注意:

请确保使用 tidb 账户登录中控机。

  1. 打开 /home/tidb 目录。

  2. 执行以下命令下载 DM-Ansible。

    wget https://download.pingcap.org/dm-ansible-{version}.tar.gz
    

    {version} 为期望下载的 DM 版本,如 v1.0.1、v1.0.2 等。可以通过 DM Release 查看当前已发布版本。

第 4 步:安装 DM-Ansible 及其依赖至中控机

注意:

  • 请确保使用 tidb 账户登录中控机。
  • 您需要使用 pip 方式下载安装 TiDB Ansible 及其依赖,否则可能会遇到兼容性问题。 DM-Ansible 当前与 Ansible 2.5 或更高版本兼容。
  1. 在中控机上安装 DM-Ansible 及其依赖包:

    tar -xzvf dm-ansible-{version}.tar.gz &&
    mv dm-ansible-{version} dm-ansible &&
    cd /home/tidb/dm-ansible &&
    sudo pip install -r ./requirements.txt
    

    Ansible 和相关依赖包含于 dm-ansible/requirements.txt 文件中。

  2. 查看 Ansible 版本:

    ansible --version
    
    ansible 2.5.0
    

第 5 步:在中控机上配置 SSH 互信和 sudo 规则

注意:

请确保使用 tidb 账户登录至中控机。

  1. 将您部署的目标机器的 IP 地址加至 hosts.ini 文件中的 [servers] 部分。

    cd /home/tidb/dm-ansible &&
    vi hosts.ini
    
    [servers]
    172.16.10.71
    172.16.10.72
    172.16.10.73
    
    [all:vars]
    username = tidb
    
  2. 运行如下命令,然后输入部署目标机器的 root 用户密码。

    ansible-playbook -i hosts.ini create_users.yml -u root -k
    

    该步骤将在部署目标机器上创建 tidb 用户,创建 sudo 规则,并为中控机和部署目标机器之间配置 SSH 互信。

第 6 步:下载 DM 及监控组件安装包至中控机

注意:

请确保中控机接入互联网。

在中控机上,运行如下命令:

ansible-playbook local_prepare.yml

第 7 步:编辑 inventory.ini 配置文件

注意:

请确保使用 tidb 账户登录中控机。

打开并编辑 /home/tidb/dm-ansible/inventory.ini 文件如下,以管控 DM 集群。

dm_worker1 ansible_host=172.16.10.72 server_id=101 source_id="mysql-replica-01" mysql_host=172.16.10.81 mysql_user=root mysql_password='VjX8cEeTX+qcvZ3bPaO4h0C80pe/1aU=' mysql_port=3306

根据场景需要,您可以在以下两种集群拓扑中任选一种:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3135856/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: TiDB 简介
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39959