1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Virtual Machine基本設定

Posted at

Virtual Machine基本設定


==Dockerコンテナの場合は、第6.5章のみ実行すること。==

1.CentOS6.6(Final)のインストール

1.1 Minimal Instration Discを使う。

/Users/soushi/OneDrive/ISO/CentOS-6.6-x86_64-
minimal.iso

2.ネットワーク周辺設定

2.0 VMWareの設定画面で、ネットワークをShare with my Macにする。

2.0.1 VMWare->Preferences

Virtual Machine Basis fig1.png

2.0.2 Share with my Macを選択

Virtual Machine Basis fig3.png

2.1 各VMのネットワーク設定画面で、ネットワークをShare with my Macにする。

2.1.1

2.1 Network Managerをオフにする。

※エラーが出るはず。この場合、追加の設定は不要。

chkconfig --list NetworkManager
# > error reading information on service NetworkManager: No such file or directory

設定が必要な場合、下記コマンドを実行

service NetworkManager stop
chkconfig NetworkManager off
service network restart
cat /etc/sysconfig/network-scripts/ifcfg-eth0 | sed -i 's/NM_CONTROLLED=no/NM_CONTROLLED=yes/g'

2.2 IPアドレス/ホスト名/ドメイン名の設定

/etc/sysconfig/network-scripts/ifcfg-eth0を編集する。

DEVICE=eth0
ONBOOT=yes
HWADDR=VMのネットワーク設定->Advanced option
IPADDR=131.113.102.219
NETMASK=255.255.255.128
GATEWAY=131.113.102.129
NAMESERVER=131.113.102.130
BROADCASTADDR=131.113.102.255
HOSTNAME=g2vm1
DOMAINNAME=yamanaka.ics.keio.ac.jp

sed -i -e '/BOOTPROTO=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/BOOTPROTO=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/IPADDR=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "IPADDR=$IPADDR" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/NETMASK=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/GATEWAY=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/BROADCAST=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "BROADCAST=$BROADCASTADDR" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/IPV6INIT=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "IPV6INIT=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0;
sed -i -e '/PEERDNS=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "PEERDNS=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0;

sed -i -e '/DOMAIN=.*/d' /etc/sysconfig/network-scripts/ifcfg-eth0;
echo "DOMAIN=$DOMAINNAME" >> /etc/sysconfig/network-scripts/ifcfg-eth0;

sed -i -e '/domain.*/d' /etc/resolv.conf;
sed -i -e '/search.*/d' /etc/resolv.conf;
echo "search $DOMAINNAME" >> /etc/resolv.conf;

sed -i -e '/nameserver.*/d' /etc/resolv.conf;
echo "nameserver $NAMESERVER" >> /etc/resolv.conf;

sed -i -e '/NETWORKING=.*/d' /etc/sysconfig/network;
echo "NETWORKING=yes" >> /etc/sysconfig/network;
sed -i -e '/HOSTNAME=.*/d' /etc/sysconfig/network;
echo "HOSTNAME=$HOSTNAME.$DOMAINNAME" >> /etc/sysconfig/network;

sed -i -e '/127\.0\.0\.1.*/d' /etc/hosts;
echo "127.0.0.1    $HOSTNAME.$DOMAINNAME $HOSTNAME localhost.localdomain localhost" >> /etc/hosts
sed -i -e '/\:\:1.*/d' /etc/hosts
echo "::1    $HOSTNAME.$DOMAINNAME $HOSTNAME localhost.localdomain localhost" >> /etc/hosts
reboot;

3 設定値の確認

3.1 ホスト名・ドメイン名を確認

※domainnameは(none)でOK。この設定値は不要となった。

hostname
# >vm1.soushi.jp
hostname -d
# >soushi.jp
ifconfig

4 OpenSSHの導入

4.1 yumのアップデート

yum update
yum check-update
yum -y install openssh-clients

4.2 ユーザーsoushiを追加する

こちらのマニュアルを参照

4.2.2 鍵認証接続をテストします。

※ローカル端末で実行

ssh soushi@$server
exit

4.4 SSHでのログインを鍵認証のみ許可する

SSH2による接続のみ許可

sudo sed -i -e 's/^Protocol/#Protocol/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#Protocol/a Protocol 2' /etc/ssh/sshd_config

#### RSA公開鍵による認証
sudo sed -i -e 's/^RSAAuthentication/#RSAAuthentication/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#RSAAuthentication/a RSAAuthentication yes' /etc/ssh/sshd_config

#### rhostsでの認証を禁止
sudo sed -i -e 's/^RhostsRSAAuthentication/#RhostsRSAAuthentication/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#RhostsRSAAuthentication/a RhostsRSAAuthentication no' /etc/ssh/sshd_config

#### パスワードでの認証を禁止(公開鍵による認証のみにする)
sudo sed -i -e 's/^PermitEmptyPasswords/#PermitEmptyPasswords/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#PermitEmptyPasswords/a PermitEmptyPasswords no' /etc/ssh/sshd_config
sudo sed -i -e 's/^PasswordAuthentication/#PasswordAuthentication/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#PasswordAuthentication/a PasswordAuthentication no' /etc/ssh/sshd_config

#### チャレンジ/レスポンス認証を無効化する
sudo sed -i -e 's/^ChallengeResponseAuthentication/#ChallengeResponseAuthentication/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#ChallengeResponseAuthentication/a ChallengeResponseAuthentication no' /etc/ssh/sshd_config

#### 設定を反映
sudo service sshd restart

(オプション)VMware ESXi上の仮想マシンの場合、下記を実行してMACアドレスの値を適切な値に書き換えること。

1 ローカルで実行します。
scp ~/OneDrive/Scripts/ConfigureMACaddressForVMsOnESXi.sh root@$IPADDR:~/vmwarenetrewrite
2 VMに接続します。
ssh -i ~/OneDrive/.ssh/id_rsa root@$IPADDR
3 設定を書き込みます。

==(次回の再起動時に適切なMACアドレスが設定されます。)==

chmod +x /root/vmwarenetrewrite
echo "/root/vmwarenetrewrite" >> /etc/rc.d/rc.local

(オプション)必要に応じて、rootでのログインを禁止します。

#### rootでの認証を禁止
sudo sed -i -e 's/^PermitRootLogin/#PermitRootLogin/g' /etc/ssh/sshd_config
sudo sed -i -e '/^#PermitRootLogin/a PermitRootLogin no' /etc/ssh/sshd_config

5 実験用設定

5.2 ipv6, iptables, SELINUXを無効にする。

sudo echo 'options ipv6 disable=1' > /etc/modprobe.d/disable-ipv6.conf
sudo service iptables stop
sudo chkconfig iptables off
sudo chkconfig ip6tables off
sudo sed -i -e 's/^SELINUX=/#SELINUX=/g' /etc/selinux/config;
sudo sed -i -e '/^#SELINUX/a SELINUX=disabled' /etc/selinux/config;
sudo setenforce 0

6 開発環境の導入

==※rootユーザーで行う。==

6.1 環境変数を設定

※/etc/profileに、LANGとLC_ALLの環境変数を書き込んでおく。

sudo sed -i "s/^\(LANG.*\)/#\1/g" /etc/sysconfig/i18n
sudo echo 'LANG=en_US.utf8' >> /etc/sysconfig/i18n
sudo echo 'LC_CTYPE=en_US.utf8' >> /etc/sysconfig/i18n
sudo echo 'LC_NUMERIC="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_TIME="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_COLLATE="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_MONETARY="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_MESSAGES="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_PAPER="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_NAME="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_ADDRESS="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_TELEPHONE="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_MEASUREMENT="en_US.utf8"' >> /etc/sysconfig/i18n
sudo echo 'LC_IDENTIFICATION="en_US.utf8"' >> /etc/sysconfig/i18n

6.2 Cコンパイラおよびその他ツールを導入

  • IPv6のSingle Request Reopenを有効にします。理由はこちら

  • 最新バージョン以外のCentOSでは、下記を行うこと。

sudo sed -i -e "s|mirror\.centos\.org/centos/\$releasever|vault\.centos\.org/6.6|g" /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i -e "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo
echo 'options single-request-reopen' >> /etc/resolv.conf
yum -y update
  • カーネルのアップデートが含まれていた場合、一旦ここで再起動。
shutdown -r now
LANG=C yum -y groupinstall "Development tools"
yum -y install man man-pages man-pages-overrides man-pages-ja
yum -y check-update
yum -y install gcc*
yum -y install gcc gcc-c++
yum -y install which
yum -y install tcpdump
yum -y install uuid*
yum -y install e2fsprogs*
yum -y install libuuid*
yum -y install libtool*
yum -y install tree
yum -y install wget
yum -y install git
yum -y install unzip
yum -y install python
yum -y install perl
yum -y install tar
yum -y install ruby
yum -y install traceroute
yum -y install nmap
yum -y install man
yum -y install jq
yum -y install nc
yum -y install screen
yum -y install openssh
yum -y install openssh-server
yum -y install openssh-clients
yum -y install nethogs
yum -y install openssl-devel
yum -y install readline-devel zlib-devel
yum -y install libffi-devel
yum -y --enablerepo=epel,remi,rpmforge install libxml2 libxml2-devel
yum -y --enablerepo=epel,remi,rpmforge install libxslt libxslt-devel

mkdir /usr/local/download
cd /usr/local/download
wget http://launchpad.net/byobu/trunk/3.16/+download/byobu_3.16.orig.tar.gz
tar zxvf byobu_3.16.orig.tar.gz
cd byobu-3.16
./configure --prefix="/usr/local/byobu"
make
make install
echo 'export PATH=$PATH:/usr/local/byobu/bin' >> /etc/profile
export PATH=$PATH:/usr/local/byobu/bin

6.3 ntpdを導入

yum -y install ntp
chkconfig ntpd on
echo "restrict 133.243.238.163 mask 255.255.255.255 nomodify notrap noquery" >> /etc/ntp.conf
echo "restrict 133.243.238.164 mask 255.255.255.255 nomodify notrap noquery" >> /etc/ntp.conf
echo "restrict 133.243.238.243 mask 255.255.255.255 nomodify notrap noquery" >> /etc/ntp.conf
echo "restrict 133.243.238.244 mask 255.255.255.255 nomodify notrap noquery" >> /etc/ntp.conf
echo "server ntp.nict.jp" >> /etc/ntp.conf
service ntpd restart
ntpq -p
echo "# 毎朝5時にソフトウェアクロックがハードウェアクロックに反映" >> /etc/crontab
echo "0 5 * * 0 root /sbin/hwclock -w > /dev/null 2>&1" >> /etc/crontab

6.4 Fedora EPEL, remi, RPMForgeのリポジトリをyumに追加する。

6.4.1 ダウンロード(CentOS6の場合)

mkdir /usr/local/download
cd /usr/local/download
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

6.4.2 インストール

rpm -Uvh epel-release-6-8.noarch.rpm remi-release-6.rpm rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

6.4.3 設定

リポジトリが追加できたら、それぞれのリポジトリをいったん無効化します。
具体的に言うと、設定ファイルのenabledという項目を0に変更し、yum実行時に明示的に指定されない限り、新たに追加したリポジトリが利用されないようにします。
ちなみに、remiはもともとenabled=0となっているので、Fedora EPELとRPMForgeのみviコマンドで編集します。
※意図せず、標準外のリポジトリ(今回追加したリポジトリ)が使われないための対策です。

6.4.3.1 /etc/yum.repos.d/epel.repoのenabledを0に変更。
sed -i -e 's/^enabled/#enabled=/g' /etc/yum.repos.d/epel.repo
sed -i -e '/^#enabled/a enabled=0' /etc/yum.repos.d/epel.repo
6.4.3.2 [rpmforge]のenabledを0に変更。
sed -i -e 's/^enabled/#enabled=/g' /etc/yum.repos.d/rpmforge.repo
sed -i -e '/^#enabled/a enabled=0' /etc/yum.repos.d/rpmforge.repo
6.4.4 リポジトリを使うとき
yum -y --enablerepo=remi,epel,rpmforge install <<パッケージ名>>

6.5 tmuxをインストールします。

yum -y --enablerepo=rpmforge install tmux

6.6 その他便利ツールをインストールします。

# pythonのパッケージ管理ソフトpip
yum -y --enablerepo="epel" install python-pip
# カラーリングが行えるcat、Pygments
sudo yes | pip install pygments
echo "alias ccat='pygmentize -g'" >> /etc/profile

6.7 Ruby on Railsをインストールします。

  • rbenvのインストール(システムワイドにインストールする必要があります)
  • まず sudoers を設定します。
  • デフォルトで PATH が参照しない場所にインストールしますので、sudo がそれを認識しないと困ります。.profile 等で操作ユーザの PATH を変更しても通常は sudo はそれを認識してくれませんので、操作ユーザの PATH を sudo が引き継げるように sudoers を設定します。
sudo visudo
# :/usr/local/rbenv/bin:/usr/local/rbenv/shimsの2つを追記する
Defaults secure_path=<現在secure_pathに設定されている値>:/usr/local/rbenv/bin:/usr/local/rbenv/shims
Defaults env_keep += "PATH RBENV_ROOT"
  • /usr/local/rbenv に rbenv および rbenv のプラグインとして ruby-build をインストールします。
  • 以後、バージョンアップする場合はそれぞれのディレクトリに移動して sudo git pull すれば簡単に最新版にできるようになります。
export RBENV_ROOT=/usr/local/rbenv
export PATH=${RBENV_ROOT}/bin:${PATH}
sudo git clone git://github.com/sstephenson/rbenv.git ${RBENV_ROOT}
sudo git clone git://github.com/sstephenson/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build
  • 配置ができたら rbenv の初期設定(ディレクトリ作成等)を行います。rbenvのマニュアルだと .profile に記述することで自動化してますが、今回の環境では root 権限がないとエラーになりますので、予め手動で実行する必要があります。
sudo rbenv init -
  • 最後に、rbenv を自分の環境から呼べるよう、.profile に設定を追加します。
su - vagrant
bash -c 'cat <<\__EOT__ >> ~/.bash_profile
export RBENV_ROOT="/usr/local/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
__EOT__'
su -
bash -c 'cat <<\__EOT__ >> ~/.bash_profile
export RBENV_ROOT="/usr/local/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
__EOT__'
  • 設定を追加したらシェルを再起動します。
exec ${SHELL} -l
sudo rbenv install -l
  • Rubyの最新版(2.2.3)をインストール
  • Ruby のバージョンをインストールする場合は、sudo を通して renv install を実行します。
sudo rbenv install 2.2.3
sudo rbenv versions
sudo rbenv global 2.2.3
sudo rbenv version
sudo rbenv rehash
  • Railsのインストール
sudo gem install nokogiri -- --use-system-libraries
sudo gem update --system
sudo gem install --no-ri --no-rdoc rails
sudo gem install bundler
sudo gem install compass-rails
sudo rbenv rehash
sudo rails -v
su
yum -y remove postgresql*
yum -y install yum install postgresql-devel.x86_64 --enablerepo=rpmforge
yum -y install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm --enablerepo=rpmforge
yum -y install postgresql94-server postgresql94-contrib --enablerepo=rpmforge
yum -y install nodejs npm --enablerepo=epel
service postgresql-9.4 initdb
chkconfig postgresql-9.4 on
su - vagrant
sudo gem install pg
  • postgresqlを調整
sudo find / -name pg_hba.conf
sudo vi /var/lib/pgsql/9.4/data/pg_hba.conf
  • 下記のように変更
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# ↓ 下記の通り書き換える(trustは無条件,md5が推奨)
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             10.0.0.0/8              md5
host    all             all             172.16.0.0/12           md5
host    all             all             192.168.0.0/16          md5
sudo /etc/rc.d/init.d/postgresql-9.4 start
sudo -u postgres psql
  • ここまででpostgresqlのセットアップは完了。Railsで使う場合は追加の設定が必要。続きはRailsTechnics.mdを参照

6.7(オプション)VMware toolsをインストールする。

==VMware ESXi上にあるVMの場合、ESXiホストから電源オン/オフなどの操作を行えるようにするため==、VMware toolsをインストールする必要があります。

6.5 第6章以降の全コード

[Virtual Machine Setup.md.sh](/Users/soushi/OneDrive/Scripts/Virtual Machine Setup.md.sh)に全てのコマンドを記載

7 開発環境の構築完了

Apache Stormを実行したい。

こちらの[マニュアルを参照](/Users/soushi/OneDrive/Manuals/Apache Storm.md)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?