TiDB学习笔记---离线部署ansible
1、在中控机上安装系统依赖包
以 root 用户登录中控机
如果中控机是 CentOS 7 系统,执行以下命令:
# yum -y install epel-release git curl sshpass
# yum -y install python-pip
2、在中控机上创建 tidb 用户,并生成 ssh key
以 root 用户登录中控机,执行以下命令
# 创建 tidb 用户
useradd -m -d /home/tidb tidb
# 设置 tidb 用户密码
passwd tidb
配置 tidb 用户 sudo 免密码,将 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾即可。
visudo
---------------
tidb ALL=(ALL) NOPASSWD: ALL
----------------
# 生成 ssh key: 执行 su 命令从 root 用户切换到 tidb 用户下。
su - tidb
# 创建 tidb 用户 ssh key, 提示 Enter passphrase 时直接回车即可。执行成功后,ssh 私钥文件为 /home/tidb/.ssh/id_rsa, ssh 公钥文件为 /home/tidb/.ssh/id_rsa.pub。
ssh-****** -t rsa
3、在中控机器上下载 TiDB-Ansible
以 tidb 用户登录中控机并进入 /home/tidb 目录。以下为 tidb-ansible 分支与 TiDB 版本对应关系,版本选择可以咨询官方。
下载release2.1版本,安装ansible版本为ansible 2.6.14
(目前 release-2.0、release-2.1 及 master 版本兼容 Ansible 2.4 及 Ansible 2.5 版)是否需要换2.0
cd /home/tidb
$ git clone -b release-2.1 https://github.com/pingcap/tidb-ansible.git
# 安装
cd /home/tidb/tidb-ansible
sudo pip install -r ./requirements.txt
ansible --version
4、在中控机上配置部署机器 ssh 互信及 sudo 规则
以 tidb 用户登录中控机,将你的部署目标机器 IP 添加到 hosts.ini 文件 [servers] 区块下。
cd /home/tidb/tidb-ansible
vi hosts.ini
-----------------
[servers]
172.16.10.1
172.16.10.2
172.16.10.3
172.16.10.4
172.16.10.5
172.16.10.6
[all:vars]
username = tidb
ntp_server = pool.ntp.org
执行以下命令,按提示输入部署目标机器 root 用户密码。该步骤将在部署目标机器上创建 tidb 用户,并配置 sudo 规则,配置中控机与部署目标机器之间的 ssh 互信。
ansible-playbook -i hosts.ini create_users.yml -u root -k
5、在部署目标机器上安装 NTP 服务
如果你的部署目标机器时间、时区设置一致,已开启 NTP 服务且在正常同步时间,此步骤可忽略。(可先检测NTP服务是否正确https://pingcap.com/docs-cn/op-guide/ansible-deployment/#%E5%A6%82%E4%BD%95%E6%A3%80%E6%B5%8B-ntp-%E6%9C%8D%E5%8A%A1%E6%98%AF%E5%90%A6%E6%AD%A3%E5%B8%B8)
该步骤将在部署目标机器上使用系统自带软件源联网安装并启动 NTP 服务,服务使用安装包默认的 NTP server 列表,见配置文件 /etc/ntp.conf 中 server 参数,如果使用默认的 NTP server,你的机器需要连接外网(什么意思)。 为了让 NTP 尽快开始同步,启动 NTP 服务前,系统会 ntpdate hosts.ini 文件中的 ntp_server 一次,默认为 pool.ntp.org,也可替换为你的 NTP server。
以 tidb 用户登录中控机,执行以下命令
cd /home/tidb/tidb-ansible
ansible-playbook -i hosts.ini deploy_ntp.yml -u tidb -b
6、在部署目标机器上配置 CPUfreq 调节器模式
为了让 CPU 发挥最大性能,请将 CPUfreq 调节器模式设置为 performance 模式。
你可以通过 cpupower 命令查看系统支持的调节器模式:
# cpupower frequency-info --governors
analyzing CPU 0:
available cpufreq governors: performance powersave
本例中系统支持设置 performance 和 powersave 模式。如果返回 “Not Available”,表示当前系统不支持配置 CPUfreq,跳过该步骤即可。
# cpupower frequency-info --governors
analyzing CPU 0:
available cpufreq governors: Not Available
你可以通过 cpupower 命令查看系统当前的 CPUfreq 调节器模式:
# cpupower frequency-info --policy
analyzing CPU 0:
current policy: frequency should be within 1.20 GHz and 3.20 GHz.
The governor "powersave" may decide which speed to use
within this range.
本例中当前配置是 powersave 模式,你可以通过以下命令设置为 performance 模式。
cpupower frequency-set --governor performance
你也可以通过以下命令在部署目标机器上批量设置:
$ ansible -i hosts.ini all -m shell -a "cpupower frequency-set --governor performance" -u tidb -b
7、在部署目标机器上添加数据盘 ext4 文件系统挂载参数
部署目标机器数据盘请格式化成 ext4 文件系统,挂载时请添加 nodelalloc 和 noatime 挂载参数。nodelalloc 是必选参数,否则 Ansible 安装时检测无法通过,noatime 是可选建议参数。
# 如果你的数据盘已经格式化成 ext4 并挂载,可先执行 umount 命令卸载,从编辑 /etc/fstab 文件步骤开始执行,添加挂载参数重新挂载即可。
umount /dev/nvme0n1
下面以 /dev/nvme0n1 数据盘为例:
# 查看数据盘
fdisk -l
----------
Disk /dev/nvme0n1: 1000 GB
----------
# 创建分区表
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
# 格式化文件系统
mkfs.ext4 /dev/nvme0n1
# 查看数据盘分区 UUID,本例中 nvme0n1 的 UUID 为 c51eb23b-195c-4061-92a9-3fad812cc12f。
lsblk -f
----------------可能出现
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 237b634b-a565-477b-8371-6dff0c41f5ab /boot
├─sda2 swap f414c5c0-f823-4bb1-8fdf-e531173a72ed
└─sda3 ext4 547909c1-398d-4696-94c6-03e43e317b60 /
sr0
nvme0n1 ext4 c51eb23b-195c-4061-92a9-3fad812cc12f
----------------------------
# 编辑 /etc/fstab 文件,添加 nodelalloc 挂载参数
vi /etc/fstab
---------------
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
-----------------
# 挂载数据盘
mkdir /data1
mount -a
执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc 表示生效:
mount -t ext4
---------------
# mount -t ext4
/dev/nvme0n1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
------------------------
8、分配机器资源,编辑 inventory.ini 文件
以 tidb 用户登录中控机,inventory.ini 文件路径为 /home/tidb/tidb-ansible/inventory.ini。
注: 请使用内网 IP 来部署集群,如果部署目标机器 SSH 端口非默认 22 端口,需添加 ansible_port 变量,如: TiDB1 ansible_host=172.16.10.1 ansible_port=5555
上一篇: TIDB数据库使用天条
下一篇: TiDB Roadamp
推荐阅读
-
ThinkPHP学习笔记(一)ThinkPHP部署
-
Docker学习笔记之k8s部署方法
-
ASP.NET学习笔记(五)-全球化部署,网站发布方法,AJAX使用,水晶报表使用,DropDownList,CheckBox全选
-
【Angular】学习笔记-环境部署、项目建立相关
-
Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
-
ThinkPHP学习笔记(一)ThinkPHP部署
-
Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用
-
Docker学习笔记之Docker部署Java web系统
-
学习ansible笔记1
-
rocketMQ学习笔记一:RocketMQ安装部署