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
Linux 实现自动安装服务组件以及优化内核参数 (转)的更多相关文章
- [转]C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
写在前面 原文地址:C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe 这篇文章躺在我的收藏夹中有很长一段时间了,今天闲着没事,就自己动手实践了一下.感觉 ...
- Installshield自动安装IIS组件
原文:Installshield自动安装IIS组件 一. 工程类型:IS2010 installscript 二.原理: 1. XP和 Server2003系统:由于系统默认没有自带IIS组件,一般情 ...
- (转)centos7优化内核参数详解
centos7优化内核参数详解 原文:http://blog.csdn.net/xiegh2014/article/details/52132863 cat /etc/sysctl.conf #CTC ...
- 使用光盘iso实现Linux操作系统的自动安装部署
前边写了一篇使用 PXE 的方式批量安装操作系统,不是任何时候任何地方都有环境来通过 PXE 方式来进行安装.如果此时需要通过光盘安装,默认的情况下是通过交互式方式进行安装,其实也可以通过 kicks ...
- C#创建服务及使用程序自动安装服务,.NET创建一个即是可执行程序又是Windows服务的exe
不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给大家提供一种方式,直接使用我们的程序来安装/卸载服务,并且可以 ...
- linux kickstart 自动安装
最近很多业务系统都是linux lnmp平台安装,反复的安装让人觉得很苦恼,仔细钻研了下kickstart .这里环境是red hat linux 5.8 32位,系统盘中的软件包里包含有kickst ...
- C#创建服务及使用程序自动安装服务
.NET创建一个即是可执行程序又是Windows服务的exe 不得不说,.NET中安装服务很麻烦,即要创建Service,又要创建ServiceInstall,最后还要弄一堆命令来安装和卸载. 今天给 ...
- tengine编译安装及nginx高并发内核参数优化
Tengine Tengine介绍 Tengine是由淘宝网发起的Web服务器项目.它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性. Tengine的性能和稳定性已经在大型的 ...
- 【shell脚本】优化内核参数===
一.Linux内核参数优化 Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysct ...
随机推荐
- WP8.1 实现Continuation程序(打开文件,保存文件等)
以保存文件为例 首先,在项目中加入ContinuationManager.cs类,以及SuspensionManager.cs类. 其次,在App.xaml.cs中,完成如下步骤: 1. 添加Cont ...
- 转:Enterprise Library 4.0缓存应用程序块
英文原文:http://msdn.microsoft.com/zh-cn/library/cc511588(en-us).aspx Enterprise Library 缓存应用程序块允许开发人员在应 ...
- 转:label标签的特殊用法
容易被忽略的label标签 原始作用 label标签是HTML原生的标签,其原始的作用参考这里 label 标签为 input 元素定义标注(标记). label 元素不会向用户呈现任何特殊效果.不过 ...
- 正则表达式 regular expression
原博客地址:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
- Windows 10下Chrome不能启动的问题
不能启动了 Chrome突然不能启动了,点击图标也没反应,打开任务管理器,发现点击图标后,Google Ghrome短暂地出现,随即消失. 如何解决? 解决方案 打开安装目录: C:\Program ...
- Core Java Volume I — 3.4. Variables
3.4. VariablesIn Java, every variable has a type. You declare a variable by placing the type first, ...
- linux/lib/string.c
/** * strlen - Find the length of a string * @s: The string to be sized */ size_t strlen(const char ...
- WebSphere中对response.sendError()的处理与Tomcat不同
不同的地方在于,同样的代码[response.sendError(1);] 在Tomcat下,response.getResponseCode()的值是 1,而在Websphere下面则是 500. ...
- 水灾(sliker.cpp/c/pas) 1000MS 64MB
大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上 ...
- php随笔杂记(一)
1.在function updatepwd($postData=array()) 如果参数是一个数组, 在使用时,如果给他赋值则只返回数组名$postData即可 ,如果里面已有值 ,这返回的可 ...