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

[经验分享] centos6——初始化脚本

[复制链接]

尚未签到

发表于 2018-4-23 12:27: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/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,不能直接使用于你的服务器。可以为读者提供一些思路。或者后续会完善为更简便的脚本。
  

  

运维网声明 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-450912-1-1.html 上篇帖子: CentOS系统安装后的基础优化 下篇帖子: centos7 安装salt-api
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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