VMware Player


構築環境

  • CentOS6
  • VMware Player 7.1.2

参考先

  VMWARE VMware Playernのダウンロード先
1 VMware Playerンストール

VMware Playernのインストール手順

2 CentOS6.4 を VMware Player にインストール ゲストOSの作成

Centos


構築環境

  • CentOS6

参考先

1 CentOS6のインストール GUIインストール手順
2 CentOS6パーティションの設定 パーティションの設定

VirtualBox + Vagrant


構築環境

  • VirtualBox-5.0.10
  • vagrant_1.7.4
  • ホストOS Windows8.1
  • ゲストOS centos-6.7

基本設定の参考先

VirtualBox+VagrantでCentOSの仮想環境構築 インストールからゲストOS作成までの基本的手順
Vagrant始めました

複数ゲストOS作成時のVagrantfileを参考

Vagrant上で時刻がずれている時の対処法

ゲストOSをJST(日本標準時)に変更

Vagrant + CentOS6.5 ロケールを日本に合わせる

日本語文字化け対応

Vagrant の使い始めで便利なプラグイン2つ sahara

Vagrantのプラグイン

Vagrant plugin to resize disks in VirtualBox ディスク容量の変更

Provisioning

Vagrant の shell provisioning シェル実行ユーザの指定方法
ヒアドキュメントを使いこなそう

ヒアドキュメントの使用方法

Warning: Authentication failure. Retrying... の対応

1. 秘密鍵のパスを確認

centos>vagrant ssh-config chef2

Host chef2

  IdentityFile 秘密鍵のパス/private_key

 

2. 秘密鍵をアップロード

WinSCPを起動して秘密鍵を対象のゲストOSにアップロード

 

3. 公開鍵を作成

$ chmod 600 private_key

$ ssh-keygen -yf private_key >> .ssh/authorized_keys

 

4. reloadしてWarningが出ない事を確認

centos>vagrant reload chef2

 

5.OKと表示される事を確認

centos>vagrant vbguest --status chef2

[chef2] GuestAdditions 5.0.20 running --- OK.

 

 

 

 

 

Vagrantfile

# -*- mode: ruby -*-

# vi: set ft=ruby :

 

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

 

    config.vm.box = "CentOS67"

    config.vm.box_url = "https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box"

 

    config.vm.define "man" do |man|

        man.vm.hostname="man.example.com"

        man.vm.network :private_network, ip: "192.168.33.10"

        man.vm.network :forwarded_port, guest: 22, host: 1122, id: "ssh"

        man.vm.provision :shell do |shell|

          shell.path = "scripts/gen_rsa_key.sh"

          shell.args = 'vagrant'

        end

    end

 

    config.vm.define "web1" do |web1|

        web1.vm.hostname="web1.example.com"

        web1.vm.network :private_network, ip: "192.168.33.20"

        web1.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"

        web1.vm.network :forwarded_port, guest: 80, host: 8080

        web1.vm.provision "shell", path: "scripts/httpd.sh"

        web1.vm.provision "shell", path: "scripts/nrpe.sh"

    end

 

    config.vm.define "web2" do |web2|

        web2.vm.hostname="web2.example.com"

        web2.vm.network :private_network, ip: "192.168.33.30"

        web2.vm.network :forwarded_port, guest: 22, host: 3322, id: "ssh"

        web2.vm.provision "shell", path: "scripts/httpd.sh"

        web2.vm.provision "shell", path: "scripts/nrpe.sh"

    end

 

    config.vm.define "web3" do |web3|

        web3.vm.hostname="web3.example.com"

        web3.vm.network :private_network, ip: "192.168.33.40"

        web3.vm.network :forwarded_port, guest: 22, host: 4422, id: "ssh"

        web3.vm.provision "shell", path: "scripts/httpd.sh"

        web3.vm.provision "shell", path: "scripts/nrpe.sh"

    end

 

    config.vm.define "db" do |db|

        db.vm.hostname="db.example.com"

        db.vm.network :private_network, ip: "192.168.33.50"

        db.vm.network :forwarded_port, guest: 22, host: 5522, id: "ssh"

        db.vm.provision "shell", path: "scripts/mysql.sh"

 

    end

 

    config.vm.define "mon" do |mon|

        mon.vm.hostname="mon.example.com"

        mon.vm.network :private_network, ip: "192.168.33.60"

        mon.vm.network :forwarded_port, guest: 22, host: 6622, id: "ssh"

        mon.vm.provision "shell", path: "scripts/httpd.sh"

        mon.vm.provision "shell", path: "scripts/nagios.sh"

    end

 

    config.vm.define "zab" do |zab|

        zab.vm.hostname="zab.example.com"

        zab.vm.network :private_network, ip: "192.168.33.70"

        zab.vm.network :forwarded_port, guest: 22, host: 7722, id: "ssh"

    end

 

end

SSHの秘密鍵/公開鍵のセット(gen_rsa_key.sh

#!/bin/bash

 

su - $1 -c '

  mkdir -p ~/.ssh

 

  if [[ ! -f ~/.ssh/id_rsa ]]; then

    ssh-keygen -t rsa -q -f ~/.ssh/id_rsa -P ""

    echo created private key: ~/.ssh/id_rsa

    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

  fi

 

'

Apacheの設定(httpd.sh

#!/bin/bash

 

# httpd インストール

if [[ ! -f /etc/httpd/conf/httpd.conf ]]; then

  yum -y install httpd

  rm -f /etc/httpd/conf.d/welcome.conf

  rm -f /var/www/error/noindex.html

  /etc/rc.d/init.d/httpd start

  chkconfig httpd on

 

  sed -i -e 's/ServerTokens OS/ServerTokens Prod/g' /etc/httpd/conf/httpd.conf

  sed -i -e 's/KeepAlive Off/KeepAlive On/g' /etc/httpd/conf/httpd.conf

  sed -i -e 's/AllowOverride None/AllowOverride All/g' /etc/httpd/conf/httpd.conf

  sed -i -e "s/#ServerName www.example.com:80/ServerName `hostname`:80/g" /etc/httpd/conf/httpd.conf

  sed -i -e 's/ServerSignature On/ServerSignature Off/g' /etc/httpd/conf/httpd.conf

fi

Nagiosサーバ側の設定(nagios.sh

#!/bin/bash

 

# Nagios 設定

if [[ ! -d /usr/local/nagios ]]; then

 

# Nagiosインストール

  sudo su -

  yum -y install gd-devel

  useradd -d /usr/local/nagios/ -M nagios

  wget http://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz

  tar zxvf nagios-4.1.1.tar.gz

  cd nagios-4.1.1

  yum -y install unzip

  ./configure && make all && make fullinstall && make install-config

  cd

  rm -rf nagios-*

 

# Nagiosプラグインインストール

  yum -y install mysql-devel

  wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

  tar zxvf nagios-plugins-2.1.1.tar.gz

  cd nagios-plugins-2.1.1

  ./configure && make && make install

  cd

  rm -rf nagios-plugins-*

 

# Nagios設定

  sed -i -e 's/#cfg_dir=\/usr\/local\/nagios\/etc\/servers/cfg_dir=\/usr\/local\/nagios\/etc\/servers/g' /usr/local/nagios/etc/nagios.cfg

  sed -i -e 's/date_format=us/date_format=iso8601/g' /usr/local/nagios/etc/nagios.cfg

  mkdir /usr/local/nagios/etc/servers

  sed -i -e 's/notifications_enabled\t\t0/notifications_enabled\t\t1/g' /usr/local/nagios/etc/objects/localhost.cfg

 

# Apache設定

  usermod -G nagios apache

  sed -i -e 's/      Allow from all/#     Allow from all/g' /etc/httpd/conf.d/nagios.conf

  sed -i -e 's/#     Allow from 127.0.0.1/      Allow from 127.0.0.1/g' /etc/httpd/conf.d/nagios.conf

  sed -i -e '31i     Allow from 192.168.33.0/24' /etc/httpd/conf.d/nagios.conf

  sed -i -e '63i     Allow from 192.168.33.0/24' /etc/httpd/conf.d/nagios.conf

 

  /etc/rc.d/init.d/httpd reload

 

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

 

 

# 監視ホスト追加

# << web1 >>

cat << 'EOT' > /usr/local/nagios/etc/servers/web1.cfg

define host{

    use                     linux-server

    host_name               web1.example.com

    alias                   web1

    address                 192.168.33.20

    }

 

define service{

    use                                 generic-service

    host_name                           web1.example.com

    service_description                 PING

    check_command                       check_ping!100.0,20%!500.0,60%

    }

 

define service{

        use                             generic-service

        host_name                       web1.example.com

        service_description             Current Load

        check_command                   check_nrpe!check_load

        }

        

define service{

        use                             generic-service

        host_name                       web1.example.com

        service_description             Root Partition

        check_command                   check_nrpe!check_disk

        }

 

define service{

        use                             generic-service

        host_name                       web1.example.com

        service_description             Total Processes

        check_command                   check_nrpe!check_total_procs

        }

 

define service{

        use                             generic-service

        host_name                       web1.example.com

        service_description             SSH

        check_command                   check_nrpe!check_ssh

        }

EOT

 

# << web2 >>

  cp /usr/local/nagios/etc/servers/web1.cfg /usr/local/nagios/etc/servers/web2.cfg

  sed -i -e 's/web1/web2/g' /usr/local/nagios/etc/servers/web2.cfg

  sed -i -e 's/192.168.33.20/192.168.33.30/g' /usr/local/nagios/etc/servers/web2.cfg

 

# << web3 >>

  cp /usr/local/nagios/etc/servers/web1.cfg /usr/local/nagios/etc/servers/web3.cfg

  sed -i -e 's/web1/web3/g' /usr/local/nagios/etc/servers/web3.cfg

  sed -i -e 's/192.168.33.20/192.168.33.40/g' /usr/local/nagios/etc/servers/web3.cfg

 

# phpインストール

  yum --enablerepo=epel -y install php php-mbstring php-pear php-fpm

 

# Nagios + nrpe インストール

  wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

  tar zxvf nrpe-2.15.tar.gz

  cd nrpe-2.15

  ./configure && make check_nrpe && make install-plugin

  cd

  rm -rf nrpe-*

 

# nrpe設定

cat << 'EOT' >> /usr/local/nagios/etc/objects/commands.cfg

# 'check_nrpe' command definition

define command{

        command_name    check_nrpe

        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

        }

EOT

 

 

# 再起動

  shutdown -r now

 

# Nagios起動

  /etc/rc.d/init.d/nagios start

  chkconfig --add nagios

  chkconfig nagios on

  

  echo "*** Nagios setting end ***"

 

fi

 

Nagios監視対象サーバ側の設定(nrpe.sh

#!/bin/bash

 

# Nagios + nrpe インストール

if [[ ! -d /usr/local/nagios ]]; then

 

# nrpeインストールに必要なパッケージをインストール

  yum -y install xinetd

  yum -y install openssl-devel

  useradd -d /usr/local/nagios/ -M nagios

  mkdir /usr/local/nagios

  chown nagios:nagios /usr/local/nagios/

 

# nrpe インストール

  wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

  tar zxvf nrpe-2.15.tar.gz

  cd nrpe-2.15

  ./configure && make nrpe && make install-daemon && make install-daemon-config && make install-xinetd

  cd

  rm -rf nrpe-*

 

# Nagiosプラグインインストール

  wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

  tar zxvf nagios-plugins-2.1.1.tar.gz

  cd nagios-plugins-2.1.1

  ./configure && make && make install

  cd

  rm -rf nagios-plugins-*

 

# nrpe設定

  echo "nrpe 5666/tcp # NRPE" >> /etc/services

  sed -i -e 's/only_from       = 127.0.0.1/only_from       = 127.0.0.1 192.168.33.60/g' /etc/xinetd.d/nrpe

 

# nrpe起動

  /etc/rc.d/init.d/xinetd restart

 

# 監視サービス設定

  sed -i -e '/check_load/d' /usr/local/nagios/etc/nrpe.cfg

  echo "command[check_load]=/usr/local/nagios/libexec/check_load -w 9.0,7.0,6.0 -c 10.0,8.0,7.0" >> /usr/local/nagios/etc/nrpe.cfg

 

  sed -i -e '/check_hda1/d' /usr/local/nagios/etc/nrpe.cfg

  echo "command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /" >> /usr/local/nagios/etc/nrpe.cfg

 

  sed -i -e '/check_total_procs/d' /usr/local/nagios/etc/nrpe.cfg

  echo "command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 250 -c 400 -s RSZDT" >> /usr/local/nagios/etc/nrpe.cfg

 

  echo "command[check_ssh]=/usr/local/nagios/libexec/check_ssh -H 127.0.0.1" >> /usr/local/nagios/etc/nrpe.cfg

 

fi

 

他のPCからゲストOSにアクセスする設定(Nagiosの場合)

他PCでhosts設定後、NagiosのURLをたたくもエラーになる

hosts

 192.168.0.6   mon.example.com

URL

 http://mon.example.com/nagios

$ ssh mon.example.com  ← nagiosサーバにログイン

# sudo su -

# tail -f /var/log/httpd/error_log

[Thu Mar 10 23:00:53 2016] [error] [client 10.0.2.2] client denied by server configuration: /usr/local/nagios/share/

[Thu Mar 10 23:02:00 2016] [error] [client 10.0.2.2] client denied by server configuration: /usr/local/nagios/sbin/status.cgi

                                                        ↓

                                                     訳「クライアントはサーバー設定によって拒否されました」

                                                     なのでclient 10.0.2.2 に対してアクセス許可を与えてあげる。

 # vi /etc/httpd/conf.d/nagios.conf

<Directory "/usr/local/nagios/sbin">

  <IfVersion < 2.3>

    Allow from 192.168.33.0/24 10.0.2.2  ← ここに許可を与えるIPを追加

 

<Directory "/usr/local/nagios/share">

  <IfVersion < 2.3>

    Allow from 192.168.33.0/24 10.0.2.2  ← ここに許可を与えるIPを追加

 

# /etc/init.d/httpd restart

httpd を停止中:                                            [  OK  ]

httpd を起動中:                                            [  OK  ]

eth1が見れない時の対処方法

$ vi hoge.sh

#!/bin/bash

wget http://download.virtualbox.org/virtualbox/5.1.26/VBoxGuestAdditions_5.1.26.iso

mkdir /VBoxGuestAdditions

mount -o loop,ro VBoxGuestAdditions_5.1.26.iso /VBoxGuestAdditions

sh /VBoxGuestAdditions/VBoxLinuxAdditions.run

rm VBoxGuestAdditions_5.1.26.iso

umount /VBoxGuestAdditions

rmdir /VBoxGuestAdditions

 

$ sudo sh hoge.sh

 

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1

#VAGRANT-BEGIN

# The contents below are automatically generated by Vagrant. Do not modify.

NM_CONTROLLED=no

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.33.127 ← private_networkを設定

NETMASK=255.255.255.0

DEVICE=eth1

PEERDNS=no

#VAGRANT-END

 

centos>vagrant reload ゲストOS名

コードのハイライト表示


1. https://highlightjs.org/  こちらの「style:hoge」リンクを選択して好みのハイライトパターンを探す
2. https://cdnjs.com/libraries/highlight.js こちらから上で選んだstyleのcssを探す 
 style: railscastsの場合
 https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/railscasts.min.css
3. wgetでcssファイルをダウンロード
4. 以下の内容を管理メニュー > 基本設定 > ヘッド編集に書き込む
<style type="text/css">
 {cssファイルの内容をコピペ} ※1
</style>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

※1 以下の様に記載したいが、他のcssに変更するとハイライトがきかなくなる・・・
<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/css/ir_black.css">
5.  ハイライト表示するソースコードは <pre><code> ... </code></pre> で囲む
<code class="hljs python"> の様にclass指定も可能。こちらを参考に選ぶ

Docker


構築環境

  • Docker version 1.7.1
  • doc.example.com

参考先

1 CentOS 6.5 で Docker を使ってみる Dockerインストール
2 Dockerコマンドをsudoなしで実行する方法

 

3 いまさら聞けないDocker入門 Dockerの基本的操作
  Docker Hub Dockerコンテナーの公開先