1.最近浏览到一个比较新的分布式数据库Tidb,开源看起来比较牛的样子,一时手痒就动手试试部署node
2.参考官方 Ansible 离线方式部署 :https://pingcap.com/docs-cn/op-guide/offline-ansible-deployment/ python
3.环境:Win7+VirtualBox 虚拟机 ,网络环境:Win7 能够经过代理上网,6台虚拟机统一采用 hostonly 方式,mysql
原本若是经过 能够上网的linux 机器做为下载机器和中控机器的话不须要这么无法,但内网代理各类限制,一致没搞通 linux 虚拟机上网linux
只能经过windows 下载须要的 gz 文件。git
4.先从虚拟机建立开始:github
新建虚拟机sql
下一步下一步到选择存储虚拟磁盘的位置 能够默认建立一个专用的存储目录 这里存在 F:\ROSdocker
下 数据库
选择下载好的 CentOS7 ISO 文件 windows
安装过程记得添加用户 tidb 密码 tidb 同时服用管理员权限
时区选择:上海 这个在NTP 时间同步时会遇到
root root 密码设置
新建tidb 用户 密码 tidb 静待安装完成
咱们用第一个 hostonly 网络
修改网络配置 固定第一台中控机 IP地址为 192.168.56.100
这个百度上有我就不在一步一步操做了
基本配置完成后测试下网络是否能够用 远程工具远程
下一步就是经过 virtualbox 的磁盘复制方式来复制虚拟机
点开
虚拟介质管理
选择刚建立的虚拟机
复制 选择存储目录 重命名便可 至少须要复制出5台
相似如此
新建虚拟机
下一步下一步到选择虚拟磁盘是选择刚刚复制的vdi 文件
其余虚拟机类同
进去每一个虚拟器设置为不一样的IP地址,并测试网络是否互通
若是不通须要关闭防火墙
systemctl stop firewalld
CentOS 7 系统 Ansible 离线安装方式:
下载 Ansible 离线安装包 ,上传至中控机。
参考官方文档 下载 Ansible
http://download.pingcap.org/ansible-2.4-rpms.el7.tar.gz
经过FTP软件 上传 ansible 压缩包
放在 rpm 这个文件夹下
参考官方文档
# tar -xzvf ansible-2.4-rpms.el7.tar.gz # cd ansible-2.4-rpms.el7 # rpm -ivh PyYAML*rpm libyaml*rpm python-babel*rpm python-backports*rpm python-backports-ssl_match_hostname*rpm python-cffi*rpm python-enum34*rpm python-httplib2*rpm python-idna*rpm python-ipaddress*rpm python-jinja2*rpm python-markupsafe*rpm python-paramiko*rpm python-passlib*rpm python-ply*rpm python-pycparser*rpm python-setuptools*rpm python-six*rpm python2-cryptography*rpm python2-jmespath*rpm python2-pyasn1*rpm sshpass*rpm # rpm -ivh ansible-2.4.2.0-2.el7.noarch.rpm
解压安装
输入命令提示版本信息
下载 tidb-ansible
git clone https://github.com/pingcap/tidb-ansible.git
官方说明
以上方法联网下载,但咱们内网linux 由于代理没法下载 因此须要手动下载文件
使用 VSCode 打开 下载的 tidb-ansible 解压包
我一开始不知道有这个文件,是经过命令提示错误信息本身搜索在网上下载的,但由于最后一个 tiSpark 的 jar 包文件实在是没搜到在哪下载,才想到
到这个配置中搜索 tispark -*.jar 包,才找到这个文件的
我贴出来吧:
--- third_party_packages: - name: prometheus version: 2.0.0 url: "https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz" - name: alertmanager version: 0.9.1 url: "https://github.com/prometheus/alertmanager/releases/download/v0.9.1/alertmanager-0.9.1.linux-amd64.tar.gz" - name: node_exporter version: 0.15.2 url: "https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz" - name: blackbox_exporter version: 0.11.0 url: "https://github.com/prometheus/blackbox_exporter/releases/download/v0.11.0/blackbox_exporter-0.11.0.linux-amd64.tar.gz" - name: pushgateway version: 0.4.0 url: "https://github.com/prometheus/pushgateway/releases/download/v0.4.0/pushgateway-0.4.0.linux-amd64.tar.gz" - name: grafana version: 4.6.3 url: "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz" third_party_packages_under_gfw: - name: prometheus version: 2.0.0 url: "http://download.pingcap.org/prometheus-2.0.0.linux-amd64.tar.gz" - name: alertmanager version: 0.9.1 url: "http://download.pingcap.org/alertmanager-0.9.1.linux-amd64.tar.gz" - name: node_exporter version: 0.15.2 url: "http://download.pingcap.org/node_exporter-0.15.2.linux-amd64.tar.gz" - name: pushgateway version: 0.4.0 url: "http://download.pingcap.org/pushgateway-0.4.0.linux-amd64.tar.gz" - name: grafana version: 4.6.3 url: "http://download.pingcap.org/grafana-4.6.3.linux-x64.tar.gz" - name: blackbox_exporter version: 0.11.0 url: "https://download.pingcap.org/blackbox_exporter-0.11.0.linux-amd64.tar.gz" tispark_packages: - name: spark-2.1.1-bin-hadoop2.7.tgz version: 2.1.1 url: http://download.pingcap.org/spark-2.1.1-bin-hadoop2.7.tgz checksum: "sha256:372ac4f73221c07696793101007a4f19e31566d1f0d9bd0e5205b6fb5b45bfc2" - name: tispark-SNAPSHOT-jar-with-dependencies.jar url: http://download.pingcap.org/tispark-0.1.0-SNAPSHOT-jar-with-dependencies.jar - name: tispark-sample-data.tar.gz version: 0.1.0-beta url: http://download.pingcap.org/tispark-sample-data.tar.gz
全部的依赖项都在这个配置模板中了
咱们在 tidb-ansible 解压文件夹下新建
将咱们下载的gz 包都放进去
新建资源文件夹:
这个下面只有一个文件夹
这些事其余须要的文件加压后 放在这个 文件夹下
剩下的就是配置 ini 文件了
个人配置是以下:
## TiDB Cluster Part
[tidb_servers]
192.168.56.101
[tikv_servers]
192.168.56.103
192.168.56.104
192.168.56.105
[pd_servers]
192.168.56.102
[spark_master]
[spark_slaves]
## Monitoring Part
# prometheus and pushgateway servers
[monitoring_servers]
192.168.56.100
[grafana_servers]
192.168.56.100
# node_exporter and blackbox_exporter servers
[monitored_servers]
192.168.56.101
192.168.56.102
192.168.56.103
192.168.56.104
192.168.56.105
192.168.56.100
## Binlog Part
[pump_servers:children]
tidb_servers
## Group variables
[pd_servers:vars]
# location_labels = ["zone","rack","host"]
## Global variables
[all:vars]
deploy_dir = /home/tidb/deploy
## Connection
# ssh via normal user
ansible_user = tidb
# ssh via root:
# ansible_user = root
ansible_become = true
ansible_become_user = tidb
cluster_name = test-cluster
tidb_version = v1.0.8
# deployment methods, [binary, docker]
deployment_method = binary
# process supervision, [systemd, supervise]
process_supervision = systemd
# timezone of deployment region
timezone = Asia/Shanghai
set_timezone = True
enable_firewalld = False
# check NTP service
enable_ntpd = False
set_hostname = False
## binlog trigger
enable_binlog = False
# zookeeper address of kafka cluster, example:
# zookeeper_addrs = "192.168.0.11:2181,192.168.0.12:2181,192.168.0.13:2181"
zookeeper_addrs = ""
# store slow query log into seperate file
enable_slow_query_log = False
# KV mode
deploy_without_tidb = False
其中
须要修改成 False ,这个折腾半天,由于链接不到外网的同步时间server 始终没同步成功,但突然想起来应该不用这个也能够的。
若是有条件的话尽可能仍是同步好。
hosts.ini 文件修改
[servers] 192.168.56.101 192.168.56.102 192.168.56.103 192.168.56.104 192.168.56.105 [all:vars] username = tidb ntp_server = 192.168.56.100
最后就是把整个文件夹上传到 56.100 这台中控机器
下一步经过 ansible 来安装
中间省略了 ssh 免密登陆这个能够参考官网说明
部署 TiDB 集群软件
ansible-playbook deploy.yml
启动 TiDB 集群
ansible-playbook start.yml
中间遇到phthon2 识别不了 屡次添加受权等方法都不行。
最后仍是修改了 start.yml 文件
原始的应该是这样
修改后就能成功启动了,OK
这个是监控的网页
这个是mysql 客户测试 注意须要你本机安装mysql 客户端
OK All Done.