zoukankan      html  css  js  c++  java
  • Linux 实现自动安装服务组件以及优化内核参数 (转)

    安装好Linux裸机后(安装请参考:http://blog.itpub.net/26230597/viewspace-1380155/),还需要在其上安装一些基础组件,一般是手动一个个安装,比较繁复也许会遗漏,下面整理了下,做成一个脚本,每次run下这个脚本就完成了基础组件的安装了,并且附带优化了Linux的内核参数。

    1,先配置网络,check配置为最原始的状态

    [root@wgq_idc_web_1_50 ~]# more ifcfg-eth0 
    DEVICE=eth0
    TYPE=Ethernet
    UUID=de8199bd-d18e-45d4-85a0-7cbeb1d693f2
    ONBOOT=no
    NM_CONTROLLED=yes
    BOOTPROTO=dhcp
    HWADDR=00:0C:29:BF:E2:AB
    [root@wgq_idc_web_1_50 ~]#
    手动配置网络服务:
    ifconfig eth0 1xx.2xx.1.50 netmask 255.255.255.0
    route add default gw 1xx.2xx.1.1
    service network restart



    2,设置初始化域名
    [root@wgq-web-1-50 ~]# more /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    [root@wgq-web-1-50 ~]#


    3,编写初始化安装脚本
    [root@wgq_idc_web_1_50 ~]# vim init_app_shell.sh
    #!/bin/bash
    #IP GATEWAY parameters
    if [ $# != 3 ]
      then
        echo "USAGE: $0 IPADDR GATEWAY HostName"
        echo "eg: $0 1xx.2xx.1.12 1xx.2xx.1.1 wgq_idc_mon_1_12"
    exit 1
    fi


    #hostname configuration,注意sed后面带变量的话,不能用'符号,因为会解析不了$3变量值。
    hostname $3
    sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=$3/g" /etc/sysconfig/network


    #chkconfig 
    yum install -y chkconfig


    #stop services
    chkconfig --list |grep ":on" |awk '{print $1}' > /tmp/allonservice.txt
    for i in `cat /tmp/allonservice.txt`
      do
        chkconfig $i off
      done


    for k in NetworkManager crond messagebus network rsyslog sshd 
      do
        chkconfig $k on
      done




    #network configuration
    grep "DNS1" /etc/sysconfig/network-scripts/ifcfg-eth0
    if [ $? != 0 ]
     then
    cat <<EOF>> /etc/sysconfig/network-scripts/ifcfg-eth0
    IPADDR=$1
    NETMASK=255.255.255.0
    GATEWAY=$2
    DNS1=2xx.1xx.136.10
    EOF
    fi


    sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-eth0
    sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-eth0
    service network restart


    #set nameserver
    cat <<EOF>> /etc/resolv.conf
    nameserver $4
    EOF


    #selinux disabled
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    sed -i 's/id:5:initdefault:/id:3:initdefault:/g' /etc/inittab


    #kernel optimization
    grep "net.ipv4.tcp_keepalive_time = 30" /etc/sysctl.conf
    if [ $? != 0 ]
      then
    cat <<EOF>> /etc/sysctl.conf
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.ip_local_port_range = 1024 65000
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.core.somaxconn = 262144
    net.core.netdev_max_backlog = 262144
    net.ipv4.tcp_max_orphans = 262144
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_synack_retries = 1
    net.ipv4.tcp_syn_retries = 1
    net.ipv4.tcp_fin_timeout = 1
    net.ipv4.tcp_keepalive_time = 30
    EOF


    sed -i 's/net.bridge.bridge-nf-call-ip6tables = 0/#net.bridge.bridge-nf-call-ip6tables = 0/g' /etc/sysctl.conf
    sed -i 's/net.bridge.bridge-nf-call-iptables = 0/#net.bridge.bridge-nf-call-iptables = 0/g' /etc/sysctl.conf
    sed -i 's/net.bridge.bridge-nf-call-arptables = 0/#net.bridge.bridge-nf-call-arptables = 0/g' /etc/sysctl.conf
    fi


    sysctl -p


    #epel yum source configuration
    if [ ! -d /soft ]
      then 
        mkdir /soft
    fi 
    cd /soft 
    rpm -ivh epel-release-6-8.noarch.rpm && rm -rf epel-release-6-8.noarch.rpm
    sed -i 's/#baseurl=/baseurl=/g' /etc/yum.repos.d/epel.repo
    sed -i 's/irrorlist=/#irrorlist=/g' /etc/yum.repos.d/epel.repo
    yum clean all 
    yum makecache


    #system basic lib package install
    yum install gcc gcc-c++ ncurses-devel.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel perl openssh-clients setuptool sysstat -y


    # restart the linux server 
    reboot


    [root@wgq_idc_web_1_50 ~]# 


    4,环境准备
    (1),去http://pan.baidu.com/s/1qWodCQg下载epel-release-6-8.noarch.rpm(对应centos下载相应的安装包),放到/soft/目录
    (2),注意域名是初始化的,如果手动修改过了,建议改成原始的localhost.localdomain。


    5,运行脚本开始初始化安装
    开始运行,4个参数,P1:虚拟机ip地址;P2
    sh init_app_shell.sh 1xx.2xx.1.50 1xx.2xx.1.1 wgq_idc_web_1_50 202.xxx.xxx.64


    6,调试中一些报错信息记录
    (1),yum install gcc*报错:
    PYCURL ERROR - "Couldn't resolve host 'mirrorlist.centos.org'"
    Error: Cannot find a valid baseurl for repo:base
    需要添加路由
    route add default gw 192.168.180.255
    或者
    route add add  -net 0.0.0.0 gw 1xx.2xx.1.1

    (2),yum安装报错 :
    Error Downloading Packages:
      grep-2.6.3-6.el6.x86_64: failure: Packages/grep-2.6.3-6.el6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
    缺少dns,添加dns:
    [root@wgq_idc_squid_1_11 ~]# vim /etc/resolv.conf
    nameserver 2xx.1xx.136.10
    重启服务
    ifconfig eth0 1xx.2xx.1.50 netmask 255.255.255.0
    route add default gw 1xx.2xx.1.1
    service network restart

    (3),Error: Cannot find a valid baseurl for repo:base
    需要安装
    yum install chkconfig
    yum install greo -y

  • 相关阅读:
    数学+高精度 ZOJ 2313 Chinese Girls' Amusement
    最短路(Bellman_Ford) POJ 1860 Currency Exchange
    贪心 Gym 100502E Opening Ceremony
    概率 Gym 100502D Dice Game
    判断 Gym 100502K Train Passengers
    BFS POJ 3278 Catch That Cow
    DFS POJ 2362 Square
    DFS ZOJ 1002/HDOJ 1045 Fire Net
    组合数学(全排列)+DFS CSU 1563 Lexicography
    stack UVA 442 Matrix Chain Multiplication
  • 原文地址:https://www.cnblogs.com/moss_tan_jun/p/5853745.html
Copyright © 2011-2022 走看看