集群中新添加服务器CentOS7系统的准备工作

在集群中新增加一台服务器,或对集群中的某台服务器重新安装CentOS7系统后。需要对该机器进行相关配置。以下按照我使用的集群实例进行设置

1. 准备网络

进入到新机器CentOS7系统的桌面,鼠标移动到右上角打开控制面板,在NetWork栏目中设置对应网口的IP信息。若打开不了NetWork设置界面,则运行命令 NetworkManager 开启网络设置界面。

IP地址:192.168.30.6
子网掩码:255.255.255.0
网关:192.168.30.4 (网关设置成提供了网络共享的Control服务器,从而可以让本服务器连接外网)
DNS: 211.69.143.1

在IP设置完毕后,修改 /etc/sysconfig/network-scripts/ 目录中对应网口的配置文件,例如,ifcfg-enp4s0f0,使参数值设置为: ONBOOT=yes ,以利于开机启动对应网口。

2. 准备主机名

修改配置文件 /etc/sysconfig/network 内容来设置新机器的主机名:

NETWORKING=yes
HOSTNAME=node6

再修改 /etc/hosts ,设置集群中各机器的主机名,以利于机器间相互识别。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.30.1 node1
192.168.30.2 node2
192.168.30.3 node3
192.168.30.4 control
192.168.30.5 node5
192.168.30.6 node6

3. 准备用户

在control服务器的root用户下配置无密码登录到新服务器node6的root用户中:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
ssh-copy-id -i ~/.ssh/id_dsa.pub root@node6

在control服务器中,使用root权限将用户信息配置文件上传到新的node6服务器中:

scp /etc/passwd /etc/shadow /etc/group node6:/

在新服务器node6中使用root权限修改用户信息:

cat /passwd > /etc/passwd
cat /shadow > /etc/shadow
cat /group > /etc/group
rm /passwd /shadow /group

在新服务器node6中创建用户家目录:

perl -e 'while (<>) { print "mkdir /home/$1; chown -R $1:$1 /home/$1\n" if (m/(\w+):\w+:(\d+)/ && $2 >= 1000 && $2 <= 2000); }' /etc/passwd | sh

在control服务器中,将各用户密钥信息和bash配置文件上传到新服务器node6中:

perl -e 'while (<>) { print "rm /home/$1/.ssh/known_hosts; scp -r /home/$1/.ssh /home/$1/.bash* node6:/home/$1/\n" if (m/(\w+):\w+:(\d+)/ && $2 >= 1000 && $2 <= 2000); }' /etc/passwd | sh

在新服务器node6中修改各用户目录权限:

perl -e 'while (<>) { print "chown -R $1:$1 /home/$1; chmod 700 /home/$1\n" if (m/(\w+):\w+:(\d+)/ && $2 >= 1000 && $2 <= 2000); }' /etc/passwd | sh

4. 挂载共享文件夹

修改 /etc/fstab 文件,永久挂载其它服务器的共享文件夹。

192.168.30.4:/disks/control_8T    /disks/control_8T   nfs defaults    0   0
192.168.30.4:/disks/control_4T /disks/control_4T nfs defaults 0 0
192.168.30.4:/opt/ /opt nfs defaults 0 0
192.168.30.4:/media/CentOS /media/CentOS nfs defaults 0 0

输入命令挂载所有的共享文件夹。

mount -a

5. 准备系统配置文件

修改/etc/profile.d/perl-homedir.sh配置文件,以免每次登录用户,自动在
家目录下生成perl5文件夹。

perl -p -i -e 's/PERL_HOMEDIR=1/PERL_HOMEDIR=0/' /etc/profile.d/perl-homedir.sh 

修改 /etc/sudoers 配置文件,将 chenlianfu 用户变成超级管理员用户。

perl -p -i -e 's/^(root.*)/$1\nchenlianfu   ALL=(ALL)       NOPASSWD:ALL /' /etc/sudoers

修改 /etc/selinux/config 配置文件,永久关闭linux的一个安全机制,开启该安全机制会对很多操作造成阻碍。

perl -p -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0 

修改/etc/ssh/sshd_config配置文件,使openssh远程登录更安全,更快速。

perl -p -i -e 's/#RSAAuthentication/RSAAuthentication/' /etc/ssh/sshd_config
perl -p -i -e 's/#PubkeyAuthentication/PubkeyAuthentication/' /etc/ssh/sshd_config
perl -p -i -e 's/#AuthorizedKeysFile/AuthorizedKeysFile/' /etc/ssh/sshd_config
perl -p -i -e 's/.*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
perl -p -i -e 's/.*Protocol\s+2.*/Protocol 2/' /etc/ssh/sshd_config
perl -p -i -e 's/.*ClientAliveInterval.*/ClientAliveInterval 60/' /etc/ssh/sshd_config
perl -p -i -e 's/.*ClientAliveCountMax.*/ClientAliveCountMax 10/' /etc/ssh/sshd_config
perl -p -i -e 's/.*UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
perl -p -i -e 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd.service

修改用户对系统资源的最大权限:

echo "*	soft	nproc	10240
*	hard	nproc	102400
*	soft	nofile	10240
*	hard	nofile	102400
*	soft	stack	10240
*	hard	stack	102400" >> /etc/security/limits.conf

开放防火墙端口并使之永久生效

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=3306/tcp --permanent

systemctl restart firewalld.service

systemctl start httpd.service
systemctl start mariadb.service

systemctl enable httpd.service
systemctl enable mariadb.service

设置并启动网页服务器

perl -i -e 'while (<>) { $mo = 1 if m#<Directory />#; $mo = 0 if m#<Files \".ht\*\">#; s/Require all denied/#Require all denied/ if $mo == 1; print; }' /etc/httpd/conf/httpd.conf
perl -p -i -e 's/(AddType text\/html .shtml)/$1\nAddType text\/plain .pl\nAddType text\/plain .py\nAddType text\/plain .sh/' /etc/httpd/conf/httpd.conf
perl -p -i -e 's/#AddHandler cgi-script .cgi/AddHandler cgi-script .cgi/' /etc/httpd/conf/httpd.conf

systemctl restart httpd.service

设置并启动Mysql服务器

/bin/rm -rf /etc/my.cnf /home/mysql/
cp /usr/share/mysql/my-large.cnf /etc/my.cnf 
perl -p -i -e 's/^datadir.*\n$//; s/(\[mysqld\])/$1\ndatadir         = \/home\/mysql/' /etc/my.cnf
mkdir /home/mysql
chown -R mysql:mysql /home/mysql
systemctl restart mariadb.service
/usr/bin/mysqladmin -u root password '123456'
echo "GRANT ALL ON *.* TO 'train'@'localhost' IDENTIFIED BY '123456'; GRANT SELECT ON *.* TO 'pasa'@'localhost' IDENTIFIED BY '123456'; GRANT ALL ON b2gdb.* TO 'blast2go'@'localhost' IDENTIFIED BY 'blast4it'; FLUSH PRIVILEGES;" | mysql -uroot -p123456

6. 安装系统软件

echo "alias yumlocal='yum --disablerepo=* --enablerepo=c7-media'" >> ~/.bashrc
source ~/.bashrc

yumlocal install -y gd* gcc* ftp cmake gsl* lftp screen lm_sensors gnuplot hdparm

wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz
tar zxf ntfs-3g_ntfsprogs-2017.3.23.tgz
cd ntfs-3g_ntfsprogs-2017.3.23
./configure && make -j 4 && make install
cd .. && /bin/rm ntfs-3g_ntfsprogs-2017.3.23 -rf
ln -s /usr/sbin/mount.ntfs-3g /usr/sbin/mount.ntfs

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据