天天看點

Linux叢集和自動化維2.6.5 自動化類腳本

<b>2.6.5 自動化類腳本</b>

1.批量生成賬戶腳本

在内網開發環境中,有時需要為開發組的同僚批量生成賬戶,如果手動添加的話會非常麻煩,這時可以寫一段shell腳本來自動完成這項工作。在首次登入時密碼均是統一的,在移交給開發人員使用時讓他們自行更改即可,腳本代碼如下(此腳本在centos 5.8 / 6.4 x86_64下均已測試通過):

#!/bin/bash

#此腳本應用于開發環境下批量生成使用者

for name in tom

jerry joe jane yhc brain

do

      useradd $name

      echo redhat | passwd --stdin $name

don

passwd --stdin這行代碼的的作用是将前面的輸入通過管道指令作為自己的輸出,進而避免腳本互動,達到自動化的目的。

筆者個人覺得用腳本的方式來批量自動添加使用者的方法較之ansible的user子產品更為簡便,有興趣的朋友也可以研究比較下。

2.系統初始化腳本

此腳本用于新裝linux的相關配置工作,比如禁用iptables、selinux及ipv6,優化系統核心,停掉一些沒必要啟動的系統服務等。此腳本可用于公司内部的開發機器的批量部署,腳本代碼如下所示(此腳本在centos 6.4 x86_64下已測試通過):

#添加epel外部yum擴充源

cd

/usr/local/src

wget

http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh

epel-release-6-8.noarch.rpm

#安裝gcc基礎庫檔案及sysstat工具

yum -y install

gcc gcc-c++ vim-enhanced unzip unrar sysstat

#配置ntpdate自動對時

ntp

echo "01 01

* * * /usr/sbin/ntpdate ntp.api.bz   

&gt;&gt; /dev/null 2&gt;&amp;1" &gt;&gt; /etc/crontab

ntpdate

ntp.api.bz

service crond

restart

#配置檔案的ulimit值

ulimit -shn

65534

echo

"ulimit -shn 65534" &gt;&gt; /etc/rc.local

cat &gt;&gt;

/etc/security/limits.conf &lt;&lt; eof

*                     soft     nofile             65534

*                     hard     nofile             65534

eof

#基礎系統核心優化

/etc/sysctl.conf &lt;&lt; eof

net.ipv4.tcp_syncookies

= 1

net.ipv4.tcp_syn_retries

net.ipv4.tcp_tw_recycle

net.ipv4.tcp_tw_reuse

net.ipv4.tcp_fin_timeout

net.ipv4.tcp_keepalive_time

= 1200

net.ipv4.ip_local_port_range

= 1024 65535

net.ipv4.tcp_max_syn_backlog

= 16384

net.ipv4.tcp_max_tw_buckets

= 36000

net.ipv4.route.gc_timeout

= 100

net.ipv4.tcp_synack_retries

net.core.somaxconn

net.core.netdev_max_backlog

net.ipv4.tcp_max_orphans

/sbin/sysctl -p

#禁用control-alt-delete組合鍵以防止誤操作

sed -i

's@ca::ctrlaltdel:/sbin/shutdown -t3 -r now@#ca::ctrlaltdel:/sbin/shutdown -t3

-r now@' /etc/inittab

#關閉selinux

's@selinux=enforcing@selinux=disabled@' /etc/selinux/config

#關閉iptables

service iptables

stop

chkconfig

iptables off

#ssh服務配置優化,請保持機器中至少有一個具有sudo權限的使用者,下面的配置會禁止root遠端登入

's@#permitrootlogin yes@permitrootlogin no@' /etc/ssh/sshd_config #禁止         

root遠端登入

's@#permitemptypasswords no@permitemptypasswords no@' /etc/ssh/sshd_config        #禁止空密碼登入

's@#usedns yes@usedns no@' /etc/ssh/sshd_config /etc/ssh/sshd_config

service sshd

#禁用ipv6位址

echo "alias

net-pf-10 off" &gt;&gt; /etc/modprobe.d/dist.conf

ipv6 off" &gt;&gt; /etc/modprobe.d/dist.conf

ip6tables off

#vim基礎文法優化

"syntax on" &gt;&gt; /root/.vimrc

echo "set

nohlsearch" &gt;&gt; /root/.vimrc

#精簡開機自啟動服務,安裝最小化服務的機器初始可以隻保留crond、network、rsyslog、sshd這4個服務。

for i in

`chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $i

off;done

for cursrv  in crond rsyslog sshd network;do chkconfig

--level 3 $cursrv on;done

#重新開機伺服器

reboot

繼續閱讀