口碑好的扬中网站建设,wordpress主题 淘宝客,互联网推广开户,wordpress闭站机器部署
集群规划
我们准备三台服务器kk01、kk02、kk03#xff0c;内存4G、硬盘50G、处理器4核心2内核#xff08;总8#xff09;
kk01使用 192.168.188.128
kk02使用 192.168.188.129
kk03使用 192.168.188.130
模板机准备
我们先创建一台作为模板机#xff0c;后…机器部署
集群规划
我们准备三台服务器kk01、kk02、kk03内存4G、硬盘50G、处理器4核心2内核总8
kk01使用 192.168.188.128
kk02使用 192.168.188.129
kk03使用 192.168.188.130
模板机准备
我们先创建一台作为模板机后续的两台采用完整克隆的方式
1我们配置了模块机kk01的主机名为 kk01
2配置了root用户的密码123456、创建了普通用户nhk、密码123456
3使用vim 配置了模板机ip地址、网关、DNS等信息
# 2.配置静态ip 注意我们这里刚开始需要使用root用户来修改
[nhkkk01 ~]$ su root
Password:
[rootkk01 nhk]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 做出如下修改BOOTPROTOstatic # 改为静态
# 末尾添加如下内容
IPADDR192.168.188.128
GATEWAY192.168.188.2
NETMASK255.255.255.0
DNS1192.168.188.2# 重启网卡
[rootkk01 nhk]# systemctl restart network.service
# 查看当前ip地址
[rootkk01 nhk]# ifconfig
ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.188.128 netmask 255.255.255.0 broadcast 192.168.188.255inet6 fe80::517f:78e:56fc:d924 prefixlen 64 scopeid 0x20linkether 00:0c:29:61:40:47 txqueuelen 1000 (Ethernet)
...4关闭模板机 kk01的防火墙
[rootkk01 nhk]# systemctl stop firewalld.service # 关闭当前防火墙
[rootkk01 nhk]# systemctl disable firewalld.service # 关闭防火墙开机自启动
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.# 查看防火墙状态看到 inactive (dead) 则证明防火墙成功关闭
[rootkk01 nhk]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)
....5修改模板机kk01主机名
# 修改主机名
[rootkk01 nhk]# vim /etc/hostname # 这种修改方式需要重启系统才生效
[rootkk01 nhk]# cat /etc/hostname
kk016修改hosts文件
[rootkk01 nhk]# vim /etc/hosts192.168.188.128 kk01
192.168.188.129 kk02
192.168.188.130 kk037配置普通用户nhk具有root权限
修改/etc/sudoers文件在100多行左右在%wheel下面添加一行内容如下操作所示
# 配置普通用户(nhk)具有root权限方便后期加sudo执行root权限的命令
# 注意修改这个文件即使是root用户也需要 :wq! 强制保存退出
[rootkk01 nhk]# vim /etc/sudoers
# 在%wheel这行下面添加一行 (大概是在100行左右位置)## Allow root to run any commands anywhere
root ALL(ALL) ALL## Allows members of the sys group to run networking, software,
## service management apps and more.
# %sys ALL NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS## Allows people in group wheel to run all commands
%wheel ALL(ALL) ALLnhk ALL(ALL) NOPASSWD: ALL
## Same thing without a password
# %wheel ALL(ALL) NOPASSWD: ALL注意
nhk ALL(ALL) NOPASSWD: ALL 这一行不要直接放到root行下面因为所有用户都属于wheel组你先配置了nhk具有免密功能但是程序执行到%wheel行时该功能又被覆盖回需要密码。所以nhk要放到%wheel这行下面。
8创建统一工作目录
[rootkk01 nhk]# mkdir -p /opt/software/ # 软件安装目录、安装包存放目录
[rootkk01 nhk]# mkdir -p /opt/data/ # 数据存储路径
[rootkk01 nhk]#
[rootkk01 nhk]# ll /opt
total 0
drwxr-xr-x. 2 root root 6 Jun 16 15:51 data
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
drwxr-xr-x. 2 root root 6 Jun 16 15:51 software# 修改文件夹所有者和所属组 如果是使用root用户搭建集群可以忽略
[rootkk01 nhk]# chown nhk:nhk /opt/software
[rootkk01 nhk]# chown nhk:nhk /opt/data
[rootkk01 nhk]# ll /opt
total 0
drwxr-xr-x. 2 nhk nhk 6 Jun 16 15:51 data
drwxr-xr-x. 2 root root 6 Oct 31 2018 rh
drwxr-xr-x. 2 nhk nhk 6 Jun 16 15:51 software克隆出其他机器
上述配置完以后将模板机kk01关机使用VMware的完整克隆方式克隆出 kk02、kk03并依次开机修改kk02、kk03上的ip地址
kk02
# 修改ip
[nhkkk01 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
做出如下修改IPADDR192.168.188.129# 重启网卡服务
[nhkkk01 ~]$ sudo systemctl restart network
[nhkkk01 ~]$ ifconfig # 查看ip
ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.188.129 netmask 255.255.255.0 broadcast 192.168.188.255
...# 修改主机名
[nhkkk01 ~]$ sudo hostnamectl set-hostname kk02 # 这种方式修改主机名无需重启即可生效
[nhkkk01 ~]$ hostname # [nhkkk01 ~]$ 这里还显示kk01是这个bash的原因重新打开bash即可
kk02kk03
# 修改ip
[nhkkk01 ~]$ sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
做出如下修改IPADDR192.168.188.130# 重启网卡服务
[nhkkk01 ~]$ sudo systemctl restart network
[nhkkk01 ~]$ ifconfig # 查看ip
ens33: flags4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500inet 192.168.188.130 netmask 255.255.255.0 broadcast 192.168.188.255
...# 修改主机名
[nhkkk01 ~]$ sudo hostnamectl set-hostname kk03 # 这种方式修改主机名无需重启即可生效
[nhkkk01 ~]$ hostname # [nhkkk01 ~]$ 这里还显示kk01是这个bash的原因重新打开bash即可
kk03此致3台机器准备完成
集群安装JDK
1删除Linux系统自带JDK
如果安装的是最小化版本的Linux则不需要执行此操作
# 需要在所有节点删除我们使用的是nhk用户必须加sudo
[nhkkk01 .ssh]$ sudo rpm -qa | grep -i java
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2020a-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[nhkkk01 .ssh]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps[nhkkk02 .ssh]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps[nhkkk03 ~]$ sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps# 参数说明
1rpm -qa表示查询所有已经安装的软件包
2grep -i表示过滤时不区分大小写
3xargs -n1表示一次获取上次执行结果的一个值xargs 将 sudo rpm -qa | grep -i java 的结果传递给 sudo rpm -e --nodeps-n1 表示将 sudo rpm -qa | grep -i java 的结果传递 一个一个传递给 sudo rpm -e --nodeps
4rpm -e --nodeps表示卸载软件2上传压缩包
将 jdk压缩包 kk01 的 /opt/software 文件夹下面
[nhkkk01 software]$ pwd
/opt/software
[nhkkk01 software]$ rz[nhkkk01 software]$ ll
total 185340
-rw-r--r--. 1 nhk nhk 189784266 Dec 25 2017 jdk-8u152-linux-x64.tar.gz3解压压缩包
解压 jdk 到指定目录 /opt/software
[nhkkk01 software]$ tar -zxvf jdk-8u152-linux-x64.tar.gz -C /opt/software[nhkkk01 software]$ ll
total 185340
drwxr-xr-x. 8 nhk nhk 255 Sep 14 2017 jdk1.8.0_152
-rw-r--r--. 1 nhk nhk 189784266 Dec 25 2017 jdk-8u152-linux-x64.tar.gz 4配置普通用户环境变量
[nhkkk01 software]$ sudo vim /etc/profile.d/my_env.sh添加如下内容
# 配置JDK环境
export JAVA_HOME/opt/software/jdk1.8.0_152 # 导入环境变量
export PATH$PATH:$JAVA_HOME/bin # 将环境变量拼接到PATH中让环境变量生效重新载入环境变量
[nhkkk01 software]$ source /etc/profile.d/my_env.sh 5测试jdk是否安装成功
能看到jdk相关的版本信息则说明jdk安装成功
[nhkkk01 software]$ java -version
java version 1.8.0_152
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)6分发JDK、分发环境
使用我们自定义的分发脚本 xsync
# 分发jdk
[nhkkk01 software]$ xsync /opt/software/jdk1.8.0_152/# 普通用户使用 xsync 脚本分发环境变量时必须加上脚本路径
#分发环境时需要使用sudo因为/etc目录只有root用户才能操作并且使用xsync脚本还需要加上绝对路径因为我们使用sudo命令将权限切换到了root目录下而root目录下没有xsync脚本
# 如果不加会报错 failed: Permission denied (13)
[nhkkk01 software]$ sudo /home/nhk/bin/xsync /etc/profile.d/my_env.sh 在集群的其他机器kk02、kk03刷新环境变量
[nhkkk02 ~]$ source /etc/profile.d/my_env.sh
[nhkkk03 ~]$ source /etc/profile.d/my_env.sh 如果我们没有自定义分发脚本也可以使用 scp 或 rsync 命令代替如下
scp -r /opt/software/jdk1.8.0_152/ kk02/opt/software/
scp -r /opt/software/jdk1.8.0_152/ kk03/opt/software/7注意事项
无论是基于root用户还是基于普通用户nhk大体上的命令都是相似的只是在某些情况下普通用户权限不够需要加上sudo来暂时提升权限
8环境变量说明
Linux的环境变量可在多个文件中配置如/etc/profile/etc/profile.d/*.sh/.bashrc/.bash_profile等下面说明上述几个文件之间的关系和区别。
bash的运行模式可分为 login shell 和 non-login shell 。
例如我们通过终端输入用户名、密码登录系统之后得到就是一个login shell。而当我们执行以下命令ssh kk01 command在kk01执行command的就是一个non-login shell。
登录 shell 与 非登录 shell 区别
登录shell
环境变量加载顺序
/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc /etc/profile.d/*.sh 非登录shell
环境变量加载顺序~/.bashrc /etc/bashrc /etc/profile.d/*.sh 注意
如果把环境变量只放到 /etc/profile 中non-login shell 模式会获取不到环境变量
这两种shell的主要区别在于它们启动时会加载不同的配置文件login shell启动时会加载**/etc/profile/.bash_profile/.bashrc**。non-login shell启动时会加载**~/.bashrc**。
而在加载/.bashrc实际是/.bashrc中加载的/etc/bashrc或/etc/profile时都会执行如下代码片段
[nhkkk03 etc]$ pwd
/etc
[nhkkk03 etc]$ vim /etc/bashrc# Only display echos from profile.d scripts if we are no login shell# and interactive - otherwise just process them to set envvarsfor i in /etc/profile.d/*.sh; doif [ -r $i ]; thenif [ $PS1 ]; then. $ielse. $i /dev/nullfifidone因此不管是login shell还是non-login shell启动时都会加载/etc/profile.d/*.sh中的环境变量。
并且/etc/profile文件中也告诉我们最好自己在 /etc/profile.d/ 创建一个自定义的环境变量如下查看
[nhkkk03 etc]$ vim /etc/profile# /etc/profile# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc# Its NOT a good idea to change this file unless you know what you
# are doing. Its much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.系统范围的环境和启动程序用于登录设置
函数和别名放在/etc/bashrc中修改这个文件不是一个好主意除非你知道你要做什么
正在做什么。创建一个自定义对环境的更改脚本要好得多
/etc/profile.对您的环境进行自定义更改如下所示
将防止在未来的更新中合并。