使用centos构建服务器计算集群

几个源:

centos基本源

mysql-community源

cdh源    cloudera-manager源

ambari源

[TOC]

原则问题: 要使用最小安装,然后通过源的方式安装自己需要的东西。从空白开始扩展

一定要阅读文档。

dhcp配置文件: /etc/dhcp/dhcpd.conf

default文件: /var/lib/tftpboot/pxelinux.cfg/default

kickstart文件: /var/www/html/ks_config/Centos7-ks.cfg

  • [ ] linux基本的原理
  • [ ] 做几个动图
  • [ ] 写shell---sed命令 netstat命令 awk命令
  1. 基本知识

    1. 磁盘管理

      1. 基本原理

        1. 什么是磁盘
        2. linux磁盘基础知识
        3. 挂载、扩容
      2. linux下的磁盘管理

      3. 扩容、删除make

        • /root分区扩容

          扩容教程

          • [ ] LVM的作用
    2. 网络管理

      1. 出现network无法启动,由于NetworkManager管理套件的影响
    3. 远程重装

      1. 基础知识

        1. selinux和firewall是什么

          1. selinux是为inux设计的安全加强系统(由美国国安局设计)。是MAC(Mandatory Access Control)的实现。简而言之,任何进程想在SELinux系统中干任何事情,都必须先在安全策略配置文件中赋予权限。[后面会有针对selinux的详解]

            关闭selinux:

            临时关闭:setenforce 0

            永久关闭: 将/etc/selinux/config的selinux改为disable

            • [ ] Firewall是一款linux下的防火墙。
        2. dhcp是什么

          1. DHCP(Dynamic Host Configuration Protocol)动态主机配置协议。DCHP基于UDP传输,可以自动为网络中的主机配置信息(IP地址、掩码、DNS服务器地址等)
        3. pxe是什么

          1. PXE(Pre-boot Execution Environment)预启动执行环境。交互过程如下
            • [ ] 此处应有动图
        4. kickstart是什么

        5. 优雅的装系统

          [图片上传失败...(image-3dfb32-1553096183615)]

        6. linux在启动流程

          BIOS->硬件自检->引导启动(MBR)->硬盘启动[^1]->操作系统

      2. 配置DHCP服务

        yum install dhcpd
        # 首先要知道自己的ip地址,自己的ip范围
        
        #修改配置文件
        vi /etc/dhcp/dhcpd.conf
        
        #在配置文件添加以下内容
        
        #设置DHCP于DNS服务器的动态信息更新模式。初学时完全可以不理这个选项,但是全局设置中一定要有这个选项,否则DHCP服务不能成功启动。
        ddns-update-style interim;
        
        #下面开始分配子网,网段是192.168.233.0 子网掩码是 255.255.255.0
        #不能理解网段和子网掩码的可以去网上查一下。简单的说网段规定了分配IP的段(分配哪一段IP给客户机),子网掩码规定了网段的大小
        subnet 192.168.233.0 netmask 255.255.255.0 {
            range 192.168.233.100 192.168.233.199; #分配给客户机的IP从192.168.233.100开始到192.168.233.199
            option routers 192.168.233.2; #设置网关
            default-lease-time 600; #默认租约时间
            max-lease-time 7200; #最大租约时间
        }
        
      3. 配置tftp

      4. 配置kickstart

        配置说明

      5. 配置kickstart

    4. 基本运维知识运维工具

      1. 对文本处理并批量新建文件夹
      sed '/^\s*$/d' bsync.sh | awk 'NR%3==0'|awk '{print $2}'|xargs sudo mkdir -p
      
      
      1. 建立软链接

        1. 注意软链接使用 ln -s。 删除时务必使用 rm -rf directoryname 不要在后面加 /否则会将文件夹内所有内容删除掉

        2. nginx的配置

          # 删除nginx的进程
          pkill nginx
          # 检查nginx的配置文件
          nginx -t
          # 运行nginx
          nginx
          # 设置允许http协议
          # firewall-cmd --permanent --add-service=http
          # firewall-cmd --reload
          
          # nginx增加server模块
          server
                    {
                      listen 80;#监听端口
                      server_name localhost;#域名
                      autoindex on;
                      autoindex_exact_size off;
                      autoindex_localtime on;
                      root /srv/www/htdocs
                     }
          
          #配置文件
          http{里面增加如下内容:
          
          autoindex on; #开启nginx目录浏览功能
          
          autoindex_exact_size off; #文件大小从KB开始显示
          
          autoindex_localtime on; #显示文件修改时间为服务器本地时间
          
          
    5. 脚本编写

      • 编写ssh分发脚本
      #!/bin/bash
      
      # 注意此处用于主机已经生成了ssh-key
      
      password='moon'
      
      auto_ssh(){
      
       /usr/bin/expect <<-EOF
      
      set time 30
      
      spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub$1
      
      expect {
      
      "*yes/no" { send"yes\r"; exp_                         continue }
      
      "*password:" { send"$password\r" }
      
      }
      
      expect eof
      
      EOF
      
      }
      
      for i in $@;do
      
       auto_ssh $I
      
      done
      
      ## 至此所有互信已经完成,接下来开始复制host文件
      
      for i in $@;do
      
       scp/etc/hosts root@$i:/etc/hosts
      
       #scp/shellscripts/hello root@$i:/usr/local
      
      done
      
      
      • 全自动重装系统
      • C:\Users\john\AppData\Local\Programs\Python\Python36\Scripts;C:\Users\john\AppData\Local\Programs\Python\Python36;C:\Users\john\AppData\Roaming\cabal\bin;C:\Users\john\AppData\Roaming\local\bin;C:\Users\john\AppData\Roaming\npm;C:\Program Files\MongoDB\Server\4.0\bin;%GOPATH%\bin;C:\Users\john\go\bin
  2. yum源的搭建

    1. 排除列表
    #新建文件
    [root@centos-test ~]# vim /usr/local/local_mirror/exclude.list
     
    #填入内容
    SRPMS
    aarch64
    ppc64
    ppc64le
    debug
    repodata
    EFI
    LiveOS
    images
    isolinux
    CentOS_BuildTag
    EULA
    GPL
    RPM-GPG-KEY-CentOS-7
    RPM-GPG-KEY-CentOS-Testing-7
    drpms
    
    1. shell同步脚本
    #建立文件
    [root@centos-test ~]# /usr/local/local_mirror/rsync.sh
     
    #填入内容, 在之前需要新建需要的文件目录
    #epel
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/epel/7/ /usr/local/local_mirror/epel/7/
    createrepo /usr/local/local_mirror/epel/7/
     
    #centos7-base
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ /usr/local/local_mirror/centos/7/os/x86_64/
    createrepo /usr/local/local_mirror/centos/7/os/x86_64/
     
    #centos7-updates
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/updates/x86_64/ /usr/local/local_mirror/centos/7/updates/x86_64/
    createrepo /usr/local/local_mirror/centos/7/updates/x86_64/
     
    #centos7-extras
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/extras/x86_64/ /usr/local/local_mirror/centos/7/extras/x86_64/
    createrepo /usr/local/local_mirror/centos/7/extras/x86_64/
     
    #centos7-centosplus
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/centosplus/x86_64/ /usr/local/local_mirror/centos/7/centosplus/x86_64/
    createrepo /usr/local/local_mirror/centos/7/centosplus/x86_64/
     
    #centos7.3.1611-base
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7.3.1611/os/x86_64/ /usr/local/local_mirror/centos/7.3.1611/os/x86_64/
    createrepo /usr/local/local_mirror/centos/7.3.1611/os/x86_64/
     
    #centos7.3.1611-updates
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7.3.1611/updates/x86_64/ /usr/local/local_mirror/centos/7.3.1611/updates/x86_64/
    createrepo /usr/local/local_mirror/centos/7.3.1611/updates/x86_64/
     
    #centos7.3.1611-extras
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7.3.1611/extras/x86_64/ /usr/local/local_mirror/centos/7.3.1611/extras/x86_64/
    createrepo /usr/local/local_mirror/centos/7.3.1611/extras/x86_64/
     
    #centos7.3.1611-centosplus
    rsync -avz --exclude-from=/usr/local/local_mirror/exclude.list rsync://mirrors.tuna.tsinghua.edu.cn/centos/7.3.1611/centosplus/x86_64/ /usr/local/local_mirror/centos/7.3.1611/centosplus/x86_64/
    createrepo /usr/local/local_mirror/centos/7.3.1611/centosplus/x86_64/
    
    
    #赋予权限
    [root@centos-test ~]# chmod +x /usr/local/local_mirror/rsync.sh
    
    # 同步某个repo文件,例如cloudera-cdh5
    reposync -r cloudera-cdh5
    # 安装mysql-server
    # 安装Oracle jdk
    # cat命令 sed命令 netstat命令 lsof命令
    
  3. 运维框架的构建

    1. ELK日志记录
    2. 各服务器性能指标探测
  4. 分布式计算框架的搭建

  5. 各类服务的搭建

    1. DNS服务器
    2. python等源镜像
    3. docker
    4. web服务、云计算平台
  6. 脚本的书写

  7. 进阶知识

    1. 对性能的理解
    2. 对磁盘的理解
    3. 对内存的理解
    4. 对CPU的理解
    5. 对集群的理解
    6. 对并发、并行的理解
    7. 对自动化、云计算、容器的理解

一键删除jdk

rpm -qa | grep openjdk | xargs yum -y remove

你可能感兴趣的:(使用centos构建服务器计算集群)