踩坑之路(一) 服务器基础环境配置

服务器拿到手里之后,当然是初始化配置好多东西啦!

包括主机名域名映射免密登录目录初始化等等一系列操作。

话不多说,撸起袖子直接干他。

关注博主不迷路,获取更多干货资源

1 安装基础依赖

1
2
3
4
5
6
yum update
yum install net-tools
yum install vim
yum install tree
yum install -y lrzsz
yum install wget

2 配置主机名

查看主机名

1
2
hostname
hostnamectl

修改主机名(不用重启)

1
2
3
4
5
6
7
8
# 第一台机器执行
hostnamectl set-hostname node1.lankr.cn
# 第二台机器执行
hostnamectl set-hostname node2.lankr.cn
# 第三台机器执行
hostnamectl set-hostname node3.lankr.cn
.......
# 可以用上面命令查看改好了没,也可以看下 /etc/hostname 这个文件,应该也改了
1
2
/etc/sysconfig/network
这个目录下如果配置了HOSTNAME,删掉这个配置吧

3 配置域名映射

1
vim /etc/hosts

不要动原来的,添加新的就好

1
2
3
4
5
6
7
192.168.1.101 node1.lankr.cn node1
192.168.1.102 node2.lankr.cn node2
192.168.1.103 node3.lankr.cn node3
192.168.1.104 node4.lankr.cn node4
192.168.1.105 node5.lankr.cn node5
192.168.1.106 node6.lankr.cn node6
192.168.1.107 node7.lankr.cn node7

3.1 配置配置FQDN

为每个机器单独配置自己的FQDN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 第一台机器执行
echo 'node1.lankr.cn' > /etc/sysconfig/network
# 第二台机器执行
echo 'node2.lankr.cn' > /etc/sysconfig/network
# 第三台机器执行
echo 'node3.lankr.cn' > /etc/sysconfig/network
# 第四台机器执行
echo 'node4.lankr.cn' > /etc/sysconfig/network
# 第五台机器执行
echo 'node5.lankr.cn' > /etc/sysconfig/network
# 第六台机器执行
echo 'node6.lankr.cn' > /etc/sysconfig/network
# 第七台机器执行
echo 'node7.lankr.cn' > /etc/sysconfig/network

4 免密登录

服务器集群节点众多(俺们目前7个),所以经常需要在主节点启动从节点组件,这个时候就需要在主节点登录到从节点中,如果不能免密就每次都需要输入密码,非常麻烦。

4.1 生成公钥私钥

1.在所有机器上执行下面命令,生成公钥和私钥。

1
ssh-keygen -t rsa

执行该命令后,按三次回车键即可。就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),默认保存在/root/.ssh目录。

4.2 拷贝公钥到同一台机器

我是打算将第一个节点作为主节点,所以将所有公钥拷贝到第一台机器

所有机器都执行下面命令

1
ssh-copy-id node1

执行该命令后,需要输入yesnode1的密码

第一台机器在/root/.ssh下会生成authorized_keys文件

4.3 复制第一台机器的认证到其他机器

在第一台机器执行一下命令

1
2
3
4
5
6
for i in {2..7} \
do \
echo "复制公钥到$i号机器" \
scp /root/.ssh/authorized_keys node$i:/root/.ssh \
echo \
done

执行时,需要输入yes对方的密码

其他机器在/root/.ssh下会生产authorized_keys文件

4.4 测试免密登录

1
2
ssh node2
exit

5 关闭SELINUX

1
2
3
4
5
vim /etc/selinux/config

改成

SELINUX=disabled

我们为了不重启机器让设置生效,可以临时关闭selinux

1
setenforce 0

不临时关闭的话,重启生效

1
reboot

6 配置目录

添加基础目录

路径名称 路径说明
/lankr/software/ 软件包位置
/lankr/application/ 软件安装位置
/lankr/data/ 数据存储目录
/lankr/log/ 日志存储目录
/lankr/script/ 脚本存储目录
/lankr/conf/ 配置目录

创建脚本mkdir.sh

1
2
3
touch init_mkdir.sh
chmod +x init_mkdir.sh
vim init_mkdir.sh

输入下面内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash

# 创建初始文件夹
dirs=("software" "application" "data" "log" "script/init" "script/kafka" "script/canal" "script/clickhouse" "script/zookeeper" "script/mysql" "script/cdh" "conf")
for dir in ${dirs[@]}
do
currentDir="/lankr/$dir"
if [ ! -d $currentDir ]; then
echo "目录不存在,准备创建:$currentDir"
mkdir -p $currentDir
if [ -d $currentDir ]
then
echo "目录创建成功:$currentDir"
else
echo "目录创建失败:$currentDir"
fi
else
echo "目录已存在,不创建:$currentDir"
fi
echo
done

# 将初始脚本移动到刚创建的脚本目录
echo "准备移动初始脚本init_mkdir.sh到刚创建的脚本目录/lankr/script/init"
if [ ! -f /lankr/script/init/init_mkdir.sh ]; then
echo "目标目录不存在对应文件,开始移动"
mv init_mkdir.sh /lankr/script/init
if [ -f /lankr/script/init/init_mkdir.sh ]; then
echo "移动文件成功"
else
echo "移动文件失败,请检查"
fi
else
echo "移动失败,目标目录已存在对应文件,请检查"
fi

# 分发安装包,循环发送,不同集群配置改下个数
echo "开始分发初始化文件夹"
for i in {2..7}
do
scp -r /lankr node$i:/
done
echo "完成始化文件夹分发"

执行初始脚本

1
./init_mkdir.sh

7 本机域名映射

在本机访问服务器的时候,为了方便,不用每次输入服务器的ip地址,我们可以做下域名映射。

在hosts文件里添加映射规则

1
C:\Windows\System32\drivers\etc

添加内容如下

1
2
3
4
5
6
7
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
192.168.1.104 node4
192.168.1.105 node5
192.168.1.106 node6
192.168.1.107 node7

这样就不用每次都输入ip地址了

关注博主不迷路

联系博主


本博客所有文章除特别声明外,均为原创。版权归博主小马所有。任何团体、机构、媒体、网站、公众号及个人不得转载。如需转载,请联系博主(关于页面)。如其他团体、机构、媒体、网站、博客或个人未经博主允许擅自转载使用,请自负版权等法律责任!