centos6——初始化腳本

服務器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/redhat/salt-repo-latest-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,不能直接使用於你的服務器。可以爲讀者提供一些思路。或者後續會完善爲更簡便的腳本。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章