構築環境
参考先
VMWARE | VMware Playernのダウンロード先 | |
1 | VMware Playerンストール |
VMware Playernのインストール手順 |
2 | CentOS6.4 を VMware Player にインストール | ゲストOSの作成 |
構築環境
参考先
1 | CentOS6のインストール | GUIインストール手順 |
2 | CentOS6パーティションの設定 | パーティションの設定 |
構築環境
基本設定の参考先
VirtualBox+VagrantでCentOSの仮想環境構築 | インストールからゲストOS作成までの基本的手順 |
Vagrant始めました |
複数ゲストOS作成時のVagrantfileを参考 |
Vagrant上で時刻がずれている時の対処法 |
ゲストOSをJST(日本標準時)に変更 |
Vagrant + CentOS6.5 ロケールを日本に合わせる |
日本語文字化け対応 |
Vagrant の使い始めで便利なプラグイン2つ sahara |
Vagrantのプラグイン |
Vagrant plugin to resize disks in VirtualBox | ディスク容量の変更 |
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
#!/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
'
#!/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
#!/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
#!/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 ]
$ 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指定も可能。こちらを参考に選ぶ
構築環境
参考先
1 | CentOS 6.5 で Docker を使ってみる | Dockerインストール |
2 | Dockerコマンドをsudoなしで実行する方法 |
|
3 | いまさら聞けないDocker入門 | Dockerの基本的操作 |
Docker Hub | Dockerコンテナーの公開先 |