设为首页 收藏本站
查看: 1420|回复: 0

[linux] centos6——初始化脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-16 10:05:08 | 显示全部楼层 |阅读模式
服务器centos6初始化脚本,包含几个方面:

修改主机名
添加用户秘钥
ssh 端口修改

ulimit值修改
防火墙修改

添加追踪日志

时间同步

安装一些基础软件包

nagios客户端安装

zabbix客户端安装
salt客户端安装


第一个脚本:

#!/bin/bash
# DATE 2017-02-03 17:01
SPORT=51029
SURL=http://XX.XX.XX.XX
IPTBL="/etc/sysconfig/iptables"
AUTH="authorized_keys"
MD5_DIR="/root/.md5_back"
userlist="user1 user2 user3"
sudouser="user1 user2 user3"
MINION_PATH="/etc/salt/minion"
MASTER="XX.XX.XX.XX"
LANIP=`ifconfig eth0 | grep inet | awk '{print $2}'`
NagiosServer="XX.XX.XX.XX"
TNagios="XX.XX.XX.XX"
NagiosDir="/etc/nagios/nrpe.cfg"

SCRIPT="/mnt/log/script"

if [ ! -d "$MD5_DIR" ];then
    mkdir -p $MD5_DIR
fi

function get_md5() {
    md5_value=`echo -n $1|md5sum|cut -d' ' -f1`
echo "$1 ----->  $md5_value" >>$MD5_DIR/command_md5.log
}
get_md5 /bin/ls
get_md5 /bin/cp
get_md5 /bin/vi
get_md5 /usr/bin/crontab
get_md5 /etc/passwd
get_md5 /etc/crontab
get_md5 /usr/bin/last
get_md5 /usr/bin/lastlog



INIT(){

NAME=`hostname`
sed -i '/'$NAME'/d' /etc/hosts
NEWNAME=$1
if [ $# -eq 1 -a ! -z "$NEWNAME"  ];then
    echo "Setting HOSTNAME"
    sed -i "s/$NAME/$NEWNAME/" /etc/sysconfig/network
hostname $NEWNAME
else
    echo "The hostname of this server must not be empty"
    exit 1
fi

#修改/etc/hosts 文件的主机名
echo "$LANIP  $NEWNAME" >> /etc/hosts


###sed -i 's/localhost.localdomain/$HNAME/g' /etc/sysconfig/network
sed -i 's/enforcing/disabled/g' /etc/sysconfig/selinux
#### limit 值修改
cat >> /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF


useradd -u 1001 -G wheel user1
useradd -u 1002 -G wheel user2
useradd -u 1003 -G wheel user3

sed -i "/# User_Alias ADMINS = jsmith, mikem/ aUser_Alias ADMINS = $sudouser" /etc/sudoers
sed -i '/^root/ aADMINS  ALL=\(ALL\)       ALL' /etc/sudoers
sed -i '/NOPASSWD: ALL$/ a%wheel          ALL=\(ALL\)       NOPASSWD\: ALL' /etc/sudoers

#sed -i 's/PasswordAuthentication yes/#PasswordAuthentication yes/g' /etc/ssh/sshd_config
#sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
sed -i '/#Port 22/a\Port $SPORT' /etc/ssh/sshd_config
service sshd restart

#添加用户登录密钥
for i in $userlist
do

wget $SURL/secret/$i/$AUTH -P /home/$i/.ssh/
chown $i.$i /home/$i/.ssh/$AUTH
chmod 600 /home/$i/.ssh/$AUTH
done


####添加防火墙
RESTART=0
HAVE=$(grep $SPORT $IPTBL | grep -c ACCEPT)
if [ $HAVE -eq 0 ]; then
sed -i "/-i\ lo\ -j\ ACCEPT/a-A INPUT -p tcp -m tcp --dport $SPORT -j ACCEPT" $IPTBL
RESTART=1
fi
if [ $RESTART -eq 1 ]; then
service iptables restart
fi


##添加追踪日志 script log
if [ ! -d $SCRIPT ];then
mkdir -p $SCRIPT
chmod 743 $SCRIPT
fi

cat >> /etc/profile <<EOF
if [ \$UID -ge 1000 ]; then
        exec /usr/bin/script -t 2>$SCRIPT/\$USER-\$UID-\`date +%Y%m%d%H%M\`.date -a -f -q $SCRIPT/\$USER-\$UID-\`date +%Y%m%d%H%M\`.log
fi      
EOF

#时间同步
yum -y install ntpdate
echo '02 3 * * * root /usr/sbin/ntpdate cn.pool.ntp.org' >> /etc/crontab


###INSTALL make 编译器
yum -y install gcc gcc-c++ make autoconf automake libtool zlib zlib-devel openssl openssl-devel pcre-devel ncurses-devel unixODBC-devel perl-ExtUtils-Embed mesa* gtk+extra-devel mesa* freeglut* lrzsz openssh-clients unzip patch

}

nagios_client(){
yum -y install nrpe nagios-plugins nagios-plugins-nrpe nrpe nagios-plugins-load nagios-plugins-disk nagios-plugins-swap
sed -i 's/allowed_hosts=127.0.0.1/allowed_hosts='$NagiosServer','$TNagios'/g' $NagiosDir
sed -i '/check_total_procs/a \command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 15% -c 10% -p /mnt' $NagiosDir
service nrpe start
}

salt_agent(){
# Install salt 2016.03.01
yum -y install https://repo.saltstack.com/yum/r ... st-1.el6.noarch.rpm

yum -y update
if [ $? -eq 0 ];then
yum -y install salt-minion
else
echo "yum update error"
exit 3
fi

#Config /etc/salt/minion
sed -i 's/#master: salt/master: '$MASTER'/g' $MINION_PATH
sed -i 's/#hash_type: sha256/hash_type: sha256/g' $MINION_PATH
sed -i '/#key_logfile/a\log_file: \/var\/log\/salt\/minion/' $MINION_PATH
sed -i 's/#key_logfile: \/var\/log\/salt\/key/key_logfile: \/var\/log\/salt\/key/' $MINION_PATH

service salt-minion start
}

INIT
nagios_client
salt_agent

以上为初始化脚本。

第二个脚本: 添加zabbix客户端
hname=`hostname`
SURL=http://XX.XX.XX.XX
MASTER="XX.XX.XX.XX"

#判断用户是否存在
add_user_zabbix()
{
name="zabbix"

a=`grep -c $name /etc/passwd`

if [ "$a" -eq 1 ];then
    echo  "THE user $zabbix is aready exist"
    return 1
else
   echo "Add zabbix user"
   groupadd "$name" -g 201
   useradd -g "$name" -u 201 -m "$name"
fi
}


zabbix_agentd_install()
{

log_d="/var/log/zabbix"
#安装所需软件
yum install -y ntpdate gcc gcc-c++

sleep 3
#同步时间
ntpdate asia.pool.ntp.org

sleep 3
#安装zabbix
#切换到src
cd /usr/local/src

echo "Installing zabbix_agentd"
rm -rf zabbix-3.0.4.tar.gz*
sleep 1
echo "Downloading"
wget $SURL/zabbix/zabbix-3.0.4.tar.gz
sleep 1


if [ ! -f "zabbix-3.0.4.tar.gz" ];then
echo "zabbix-3.0.4.tar.gz is not exist"
exit 1
fi


tar zxvf zabbix-3.0.4.tar.gz
cd zabbix-3.0.4
sleep 1
/bin/bash configure --prefix=/usr --sysconfdir=/etc/zabbix --enable-agent
sleep 3

if [ $? != 0 ]; then
  echo "configure was wrong!!"
  exit 1
else
  echo "The zabbix is aready installed!!"
fi

make && make install
if [ $? != 0 ]; then
  echo "There were something wrong in make!!!"
  exit 1
fi

#创建zabbix日志目录
if [ ! -d "$log_d" ];then
    mkdir $log_d
fi

chown zabbix.zabbix $log_d

#修改配置文件
/bin/cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod 755 /etc/init.d/zabbix_agentd
sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_agentd
sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,$MASTER/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/ServerActive\=127.0.0.1/ServerActive\=$MASTER:10051/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=$hname/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/zabbix_agentd.conf
sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix/zabbix_agentd.conf
#启动服务
chkconfig zabbix_agentd on
service zabbix_agentd start

return 1
}


pid=`pgrep zabbix_agentd`
if [ -n "$pid" ];then
    echo "the zabbix_agentd is aready installed!"
echo "Do want to reload the zabbix_agentd? Y/N"
read choice
case $choice in
Y) service zabbix_agentd stop;zabbix_agentd_install ;;
N) echo "You choose N,the script will be break";exit 2;;
*) echo "UNknow anwser!";exit 3;;
esac
else
    add_user_zabbix
zabbix_agentd_install
exit 4
fi


以上为整理的初始化centos 6 服务器的脚本。隐藏了一些ip,不能直接使用于你的服务器。可以为读者提供一些思路。或者后续会完善为更简便的脚本。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-342863-1-1.html 上篇帖子: 【电子书】KVM虚拟化技术 实战与原理解析 下篇帖子: 刘道军windows server2012从入门到精通视频打包下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表