前回に続いてこれも作っててデスクトップに放置されていたスクリプトですが、こっちはとあるサイトから拾ってきたものを自分用の環境に変えただけです。
#! /bin/sh # ネットワークの設定 # DHCP ###/sbin/dhclient-script # -eth0 ###if [ ! -f /etc/sysconfig/network-script/ifcfg-eth0.bak ]; then ### cp /etc/sysconfig/network-script/ifcfg-eth0 /etc/sysconfig/network-script/ifcfg-eth0.bak ###fi ###cp /etc/sysconfig/network-script/ifcfg-eth0.bak /etc/sysconfig/network-script/ifcfg-eth0 ###sed -i 's/^ONBOOT="no"/ONBOOT="yes"/' /etc/sysconfig/network-script/ifcfg-eth0 ###echo 'BOOTPROTO="dhcp"' >> /etc/sysconfig/network-script/ifcfg-eth0 ###echo 'IPADDR=192.168.24.80' >> /etc/sysconfig/network-script/ifcfg-eth0 ###echo 'NETMASK=255.255.255.0' >> /etc/sysconfig/network-script/ifcfg-eth0 ###echo 'GATEWAY=192.168.124.1' >> /etc/sysconfig/network-script/ifcfg-eth0 # -resolv ###echo 'nameserver 192.168.10.1' > /etc/resolv.conf #----------------------------------- # Edit Your Setting #----------------------------------- NTP1='ntp.asahi-net.or.jp' NTP2='ntp1.sakura.ad.jp' NTP3='ntp.ring.gr.jp' #----------------------------------- MyHostName=`hostname` echo -n "Admin User Name : " read UName echo -n "Admin User Password : " read UPass echo -n "SSH Port No (8022/9022/10022/etc...) [10022]: " read SSHPNO if [ ! ${SSHPNO} ]; then SSHPNO="10022"; fi echo -n "Make skel public_html ? (yes/no) [yes]: " read PUBHTM if [ ! ${PUBHTM} ]; then PUBHTM="yes"; fi echo -n "Make skel Maildir ? (yes/no) [yes]: " read MAILDIR if [ ! ${MAILDIR} ]; then MAILDIR="yes"; fi echo " ******************************* Admin User = ${UName} / ${UPass} SSH Port No = ${SSHPNO} public_html = ${PUBHTM} Maildir = ${MAILDIR} ******************************* Host Namet= ${MyHostName} SELinux = Disabled NTP Server1 = ${NTP1} 2 = ${NTP2} 3 = ${NTP3} *******************************" echo -n "Run OK ? (yes/no) [no]:" read OKNG if [ ! ${OKNG} ]; then OKNG="no"; fi if [ ${OKNG} != "yes" ]; then exit 1; fi echo "127.0.0.1 ${MyHostName} localhost.localdomain localhost" > /etc/hosts # -ネットワークを再起動 ###/etc/rc.d/init.d/network restart # 操作音を停止 fname='/etc/inputrc' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} echo "set bell-style visible" >> ${fname} # コンソール数を制限 fname='/etc/sysconfig/init' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} sed -i 's/\(ACTIVE_CONSOLES=.*\)1-6/\11-3/' ${fname} # サービスを停止 if [ -f '/etc/rc.d/init.d/iscsid' ]; then chkconfig iscsid off; fi if [ -f '/etc/rc.d/init.d/iptables' ]; then chkconfig iptables off; fi if [ -f '/etc/rc.d/init.d/ip6tables' ]; then chkconfig ip6tables off; fi if [ -f '/etc/rc.d/init.d/iscsi' ]; then chkconfig iscsi off; fi if [ -f '/etc/rc.d/init.d/nfslock' ]; then chkconfig nfslock off; fi if [ -f '/etc/rc.d/init.d/rpcidmapd' ]; then chkconfig rpcidmapd off; fi if [ -f '/etc/rc.d/init.d/rpcgssd' ]; then chkconfig rpcgssd off; fi if [ -f '/etc/rc.d/init.d/netfs' ]; then chkconfig netfs off; fi if [ -f '/etc/rc.d/init.d/fcoe' ]; then chkconfig fcoe off; fi if [ -f '/etc/rc.d/init.d/udev-post' ]; then chkconfig udev-post off; fi if [ -f '/etc/rc.d/init.d/iscsid' ]; then chkconfig iscsid off; fi #if [ -f '/etc/rc.d/init.d/iptables' ]; then chkconfig iptables off; fi #if [ -f '/etc/rc.d/init.d/ip6tables' ]; then chkconfig ip6tables off; fi if [ -f '/etc/rc.d/init.d/iscsi' ]; then chkconfig iscsi off; fi if [ -f '/etc/rc.d/init.d/nfslock' ]; then chkconfig nfslock off; fi if [ -f '/etc/rc.d/init.d/rpcidmapd' ]; then chkconfig rpcidmapd off; fi if [ -f '/etc/rc.d/init.d/rpcgssd' ]; then chkconfig rpcgssd off; fi if [ -f '/etc/rc.d/init.d/netfs' ]; then chkconfig netfs off; fi if [ -f '/etc/rc.d/init.d/fcoe' ]; then chkconfig fcoe off; fi if [ -f '/etc/rc.d/init.d/udev-post' ]; then chkconfig udev-post off; fi if [ -f '/etc/rc.d/init.d/auditd' ]; then chkconfig auditd off; fi if [ -f '/etc/rc.d/init.d/autofs' ]; then chkconfig autofs off; fi if [ -f '/etc/rc.d/init.d/avahi-daemon' ]; then chkconfig avahi-daemon off; fi if [ -f '/etc/rc.d/init.d/bluetooth' ]; then chkconfig bluetooth off; fi if [ -f '/etc/rc.d/init.d/cups' ]; then chkconfig cups off; fi if [ -f '/etc/rc.d/init.d/firstboot' ]; then chkconfig firstboot off; fi if [ -f '/etc/rc.d/init.d/gpm' ]; then chkconfig gpm off; fi if [ -f '/etc/rc.d/init.d/haldaemon' ]; then chkconfig haldaemon off; fi if [ -f '/etc/rc.d/init.d/hidd' ]; then chkconfig hidd off; fi if [ -f '/etc/rc.d/init.d/isdn' ]; then chkconfig isdn off; fi if [ -f '/etc/rc.d/init.d/kudzu' ]; then chkconfig kudzu off; fi if [ -f '/etc/rc.d/init.d/mcstrans' ]; then chkconfig mcstrans off; fi if [ -f '/etc/rc.d/init.d/mdmonitor' ]; then chkconfig mdmonitor off; fi if [ -f '/etc/rc.d/init.d/messagebus' ]; then chkconfig messagebus off; fi if [ -f '/etc/rc.d/init.d/netfs' ]; then chkconfig netfs off; fi if [ -f '/etc/rc.d/init.d/pcscd' ]; then chkconfig pcscd off; fi if [ -f '/etc/rc.d/init.d/portmap' ]; then chkconfig portmap off; fi if [ -f '/etc/rc.d/init.d/rawdevices' ]; then chkconfig rawdevices off; fi if [ -f '/etc/rc.d/init.d/restorecond' ]; then chkconfig restorecond off; fi if [ -f '/etc/rc.d/init.d/rpcgssd' ]; then chkconfig rpcgssd off; fi if [ -f '/etc/rc.d/init.d/rpcidmapd' ]; then chkconfig rpcidmapd off; fi if [ -f '/etc/rc.d/init.d/smartd' ]; then chkconfig smartd off; fi if [ -f '/etc/rc.d/init.d/xfs' ]; then chkconfig xfs off; fi # SELINUXを無効にする setenforce 0 fname='/etc/selinux/config' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' ${fname} # メールはPostfix+Dovecotにする ret=`rpm -qa postfix` if [ ! $ret ]; then yum -y install postfix; fi ret=`rpm -qa dovecot` if [ ! $ret ]; then yum -y install dovecot; fi chkconfig postfix off chkconfig dovecot off # ホームページ用にpublic_htmlを用意 if [ ${PUBHTM} = "yes" ]; then mkdir /etc/skel/public_html chmod 755 /etc/skel/public_html fi # メール用にMaildirを用意 if [ ${MAILDIR} = "yes" ]; then mkdir /etc/skel/Maildir chmod 700 /etc/skel/Maildir fi # 一般ユーザの設定 sed -i 's/SHELL=\/bin\/bash/SHELL=\/sbin\/nologin/' /etc/default/useradd sed -i 's/CREATE_MAIL_SPOOL=yes/CREATE_MAIL_SPOOL=no/' /etc/default/useradd # sshログイン可能なユーザを追加 ret=`cat /etc/passwd | grep ^${UName}` if [ $ret ]; then userdel -r ${UName}; fi useradd -g wheel -s /bin/bash ${UName} # -パスワード指定 echo ${UPass} | passwd --stdin ${UName} # -wheelグループへ追加 #usermod -G wheel ${UName} # -ルートになれるグループをwheelに限定 fname='/etc/pam.d/su' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi sed -i 's/^#auth\(.*required\)/auth\1/' /etc/pam.d/su fname='/etc/login.defs' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} echo "SU_WHEEL_ONLY yes" >> ${fname} # sudo設定 yum install -y sudo cp -f /etc/sudoers /etc/sudoers.tmp fname="/etc/sudoers.tmp" sed -i -e "s/^# \(%wheel[\t]\+ALL=(ALL)[\t]\+NOPASSWD: ALL\)$/\1/" ${fname} cp -f /etc/sudoers.tmp /etc/sudoers # -rootへのメールを${UName}で取得 sed -i '/^root:/d' /etc/aliases echo "root: ${UName}" >> /etc/aliases newaliases # -sshの設定 fname='/etc/ssh/sshd_config' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} sed -i "s/^#Port 22/Port ${SSHPNO}/" ${fname} sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' ${fname} sed -i 's/^#PermitEmptyPasswords/PermitEmptyPasswords/' ${fname} echo "AllowUsers ${UName}" >> ${fname} # Wrapper アクセス制限 fname='/etc/hosts.allow' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} echo 'sshd: ALL' >> ${fname} fname='/etc/hosts.deny' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} echo 'ALL: ALL' >> ${fname} # yum の設定 ret=`rpm -qa yum-fastestmirror` if [ ! $ret ]; then yum -y install yum-fastestmirror; fi ret=`rpm -qa yum-cron` if [ ! $ret ]; then yum -y install yum-cron; fi yum -y update # -yum-cronを参照のみにする fname='/etc/sysconfig/yum-cron' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} sed -i 's/^CHECK_ONLY=no/CHECK_ONLY=yes/' ${fname} sed -i 's/^DOWNLOAD_ONLY=no/DOWNLOAD_ONLY=yes/' ${fname} # -yum-cronのサービスを開始 chkconfig yum-cron on /etc/rc.d/init.d/yum-cron start # 時刻設定 ret=`rpm -qa ntp` if [ ! $ret ]; then yum -y install ntp; fi fname='/etc/ntp.conf' if [ ! -f ${fname}_bak ]; then cp ${fname} ${fname}_bak; fi cp ${fname}_bak ${fname} sed -i 's/^server 0/#server 0/' ${fname} sed -i 's/^server 1/#server 1/' ${fname} sed -i 's/^server 2/#server 2/' ${fname} sed -i 's/^server\(.*127\)/#server\1/' ${fname} echo "server ${NTP1}" >> ${fname} echo "server ${NTP2}" >> ${fname} echo "server ${NTP3}" >> ${fname} ret=`service --status-all | grep ntp.*run` if [ -n "${ret}" ]; then /etc/rc.d/init.d/ntpd stop; fi ntpdate ${NTP1} chkconfig ntpd on /etc/rc.d/init.d/ntpd start #ここからはお好みで。 # bindツールをインストール ret=`rpm -qa bind-utils` if [ ! $ret ]; then yum -y install bind-utils; fi # perlをインストール ret=`rpm -qa perl` if [ ! $ret ]; then yum -y install perl; fi # wgetをインストール ret=`rpm -qa wget` if [ ! $ret ]; then yum -y install wget; fi # telnetをインストール ret=`rpm -qa telnet` if [ ! $ret ]; then yum -y install telnet; fi # vimをインストール ret=`rpm -qa vim` if [ ! $ret ]; then yum -y install vim; fi # gccをインストール ret=`rpm -qa gcc` if [ ! $ret ]; then yum -y install gcc; fi # IPTABLESの設定 echo *filter > /etc/sysconfig/iptables echo :INPUT ACCEPT [0:0] >> /etc/sysconfig/iptables echo :FORWARD ACCEPT [0:0] >> /etc/sysconfig/iptables echo :OUTPUT ACCEPT [0:0] >> /etc/sysconfig/iptables echo :RH-Firewall-1-INPUT - [0:0] >> /etc/sysconfig/iptables echo -A INPUT -j RH-Firewall-1-INPUT >> /etc/sysconfig/iptables echo -A FORWARD -j RH-Firewall-1-INPUT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -i lo -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p 50 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p 51 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT >> /etc/sysconfig/iptables echo \#-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT >> /etc/sysconfig/iptables echo -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited >> /etc/sysconfig/iptables echo COMMIT >> /etc/sysconfig/iptables /etc/init.d/iptables restart #cd /var/tmp #ret=`rpm -qa cpan2rpm` #if [ ! $ret ]; then # cpan2ver="cpan2rpm-2.027-1.noarch.rpm" # wget http://nchc.dl.sourceforge.net/sourceforge/cpan2rpm/$cpan2ver # rpm -Uvh $cpan2ver # rm -f $cpan2ver #fi shutdown -r now"
そうそう、OpenstackとGithubの話を聞いたのですが、Githubってこの日記にも何回か出てきますけど、本来の用途はそういうものだったのかって思ったw
というのも
行ってきました。
(注)やっぱり4文字にしたかったので講習会「に」を入れちゃいましたw
とてもおもしろかったし、Github Puppet は今後に取り入れたいんなあ。
※ロゴを作りたい人はこちらへどうそ ⇒ とある櫻花の画像生成
10/20リンク修正しました。すみません。
Openstackはやっぱり思ってたようにググってみるとホスティングのサーバーと合わせて利用する機会が増えそうな感じだった。