Debian デーモン管理

  • update-rc.dでデーモン自動起動の制御

/etc/rc2.d – rc5.d にS,Kスクリプトが置かれているのが前提

MySQLの自動起動の無効化

# update-rc.d -f mysql remove

MySQLの自動起動の有効化

# update-rc.d mysql defaults

RH系のntsysvのようなツール、sysv-rc-conf (apt-get で)

2013-02-10 19-37-51

 

 

 

 

 

 

 

 

OpenGrok on Ubuntu

2013/02/10

  • Java 1.6.0_38導入済み
  • Tomcat6 (apt-get)
  • Exuberant Ctags(apt-get)
  • JFex(apt-get)
  • ant(apt-get)

 

root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
root@ubuntu:~#

* Java 1.6.0_38導入済み
* Tomcat6 (apt-get)
* Exuberant Ctags(apt-get)・・・5.9が入るようす

root@ubuntu:~# ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Nov 9 2011, 17:42:21
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex

 

* JFex(apt-get)・・・1.4.3-2 # dpkg -l で確認
* ant(apt-get)・・・1.8.2-4build1 # dpkg -l

JFlex.jarをソースディレクトリにコピー

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# dpkg -L jflex|grep JFlex.jar
/usr/share/java/JFlex.jar
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# cp /usr/share/java/JFlex.jar ./lib/
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#

 

ソースをコンパイル

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# ant
-touch-manifest:
-exclude-client:
-pre-init:
(省略)
jar:
BUILD SUCCESSFUL
Total time: 14 seconds
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#

 

確認

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# ls dist/
lib opengrok.1 opengrok.jar source.war
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#

 

デプロイ

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# ./OpenGrok deploy
Loading the default instance configuration ...
Installing /root/OpenGrok/opengrok-0.11.1-src/dist/source.war to /var/lib/tomcat6/webapps ...
Start your application server (Tomcat), if it is not already
running, or wait until it loads the just installed web application.
OpenGrok should be available on <HOST>:<PORT>/source
where HOST and PORT are configured in Tomcat.

 

Tomcat6がインストされている以下にsource.warが入る

root@ubuntu:/var/lib/tomcat6/webapps# ls -l
合計 3908
drwxr-xr-x 3 root root 4096 1月 27 21:24 ROOT
drwxr-xr-x 7 tomcat6 tomcat6 4096 1月 27 21:50 source
-rw-r--r-- 1 root root 3990157 1月 27 21:42 source.war

 

localhost:8080/sourceにアクセス、OpenGrokのホームが出てくる

Congratulations, you should now be able to point your browser to http://<YOUR_WEBAPP_SERVER>:<WEBAPPSRV_PORT>/source to work with your fresh opengrok installation! :-)

 

ソースファイル準備

mkdir -p /var/opengrok/src

 

ソース今回はopengrokのものをコピー

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# cp -a * /var/opengrok/src/
root@ubuntu:~/OpenGrok/opengrok-0.11.1-src#

 

インデックス作成

# ./OpenGrok index /var/opengrok/src
Loading the default instance configuration ...
WARNING: OpenGrok generated data path /var/opengrok/data doesn't exist
Attempting to create generated data directory ...
WARNING: OpenGrok generated etc path /var/opengrok/etc doesn't exist
Attempting to create generated etc directory ...
Creating default /var/opengrok/logging.properties ...

 

/var/opengrok/data以下にできる
/var/opengrok/以下に必要なものが作られる、(WARNINGメッセージにもそれが出力される)

root@ubuntu:/var/opengrok# ls data/
historycache index spellIndex timestamp xref
root@ubuntu:/var/opengrok#

 

CDH4.1のソースを用意してIndex張ってみる

root@ubuntu:~/OpenGrok/opengrok-0.11.1-src# time ./OpenGrok index /var/opengrok/src/hadoop-2.0.0-cdh4.1.3
Loading the default instance configuration ...
22:33:04 WARNING: GitRepository not working (missing binaries?): /var/opengrok/src/hadoop-2.0.0-cdh4.1.3/src
22:33:04 WARNING: GitRepository not working (missing binaries?): /var/opengrok/src/hadoop-2.0.0-cdh4.1.3/src
22:33:04 WARNING: Skipping creation of historycache of GitRepository repository in /var/opengrok/src/hadoop-2.0.0-cdh4.1.3/src: Missing SCM dependencies?
22:33:06 WARNING: Skipping creation of historycache of GitRepository repository in /var/opengrok/src/hadoop-2.0.0-cdh4.1.3/src: Missing SCM dependencies?
real 1m55.679s
 user 3m0.855s
 sys 0m10.469s

プロジェクトでソースわけしてみる

ソースを /var/opengrok/src へ配置

# ls /var/opengrok/src
CDH4.1.3 opengrok-0.11.1
# cd ~/OpenGrok/opengrok-0.11.1-src
# ./OpenGrok index /var/opengrok/src
real 2m41.714s
user 2m47.210s
sys 0m7.536s

 

とすると、プロジェクトは /var/opengrok/src 以下のフォルダ名のリストで構成される
検索するときはそれを指定して実行すればよい

# ./OpenGrok deploy

 

warファイルが /var/lib/tomcat6/webapps に入る

http://localhost:8080/source でアクセス

 

言いたいことを効果的に伝える

全体を一言で現す
「お客様からよろこんでもらえることです」

具体的な例を挙げて説明する
「例えば・・・」

他のもの、他社の場合と比較する
「どんな仕事も顧客のニーズに応えることで成り立つが、私の仕事は・・・・いる」

原因と結果を話す。なぜそうなのか、説明する
「この仕事をすると、お客様との間にビジネスを超えた信頼関係が生まれる」

もう一度、話の主旨を整理する
「だから、お客様に感謝され、人のつながりを実感できるこの仕事はやりがいがあって面白い」

相手に提案を投げかける
「あなたもこの仕事を通じて私と一緒に成長しませんか」

だいぶおくれてOracle Database 11g R2入れる

なぐりがきメモ

目標

Oracle Database 11g R2をPacemakerでHA冗長化

環境

RHEL5.6 x86_64

インストール前

片方セットアップ

[root@rhel5-1 ~]# groupadd oinstall
[root@rhel5-1 ~]# groupadd dba
[root@rhel5-1 ~]# useradd -g oinstall -G dba oracle
[root@rhel5-1 ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel5-1 ~]# vi /etc/sysctl.conf
# Oracle Database 11g R2
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
[root@rhel5-1 ~]# vi /etc/security/limits.conf
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240
[oracle@rhel5-1 ~]$ ulimit -Sn
1024
[oracle@rhel5-1 ~]$ ulimit -Hn
65536
[oracle@rhel5-1 ~]$ ulimit -Su
2047
[oracle@rhel5-1 ~]$ ulimit -Hu
16384
[oracle@rhel5-1 ~]$ ulimit -Ss
10240
[oracle@rhel5-1 ~]$ ulimit -Hs
unlimited
[root@rhel5-1 ~]# cd /opt/
[root@rhel5-1 opt]# mkdir app
[root@rhel5-1 opt]# cd
[root@rhel5-1 ~]# chown -R oracle:oinstall /opt/app
[root@rhel5-1 ~]# chmod -R 755 /opt/app
[root@rhel5-1 ~]#
[oracle@rhel5-1 ~]$ vi .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
# User specific aliases and functions
# Oracle Database 11g R2
ORACLE_BASE=/opt/app/oracle
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_SID

Pacemakerを試す。

興味のわいたものはためしておく。

環境

  • VMwre vSphere 4.1 の上にVMを2つ
  • RHEL5.6 x85_64
  • eth0,eth1を用意
  • 2ノードクラスタ(Active/Standby)とする

目標

Apacheを普通にHAシステムとする。紐付けるリソースはVIPアドレス。クラスタ制御部はheartbeat3とする。

手順(ハートビート、ノード参加まで)

以下を2つのサーバで実施

  1. RHELインストール
  2. Pacemakeインストール(参考:http://linux-ha.sourceforge.jp/wp/dl/pminstall_cent5)
  3. リポジトリからpm_extrasをインストール
  4. ha.cfの設定
  5. authkeysの設定
  6. Pacemaker機動(service heartbeat start)
  7. rcの設定はonにしとく(chkconfig –level 345 heartbeat on )
  8. Pacemakerはログが大量なのでsyslog.confで他のログにでるように設定
  9. crm_mon -A で状態確認

MEMO:インストールでは、RHELのCD-ROMをマウントしておき、yumでPacemakerをインストールするときには依存関係があった場合そこから解決するようにした。大まかに2の手順は、

  • epalをwgetでおとし、インストール
  • clusterlabs.repoをwgetでおとして、/etc/yum.repos.d配下へ
  • RHELメディアをマウントし、適当に作ったrepoファイル(参考:rhelmedia.repo)を/etc/yum.repos.d配下へ

[rhel-DVD]
name=RHEL
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  • yum install corosync.x86_64 heartbeat.x86_64 pacemaker.x86_64 を実行

クラスタ全体、およびリソース(RA)設定

クラスタ全体の設定、VIPアドレスとApache、またネットワークの設定

全体

# crm configure property no-quorum-policy=”ignore” stonith-enabled=”false”
# crm configure rsc_defaults resource-stickiness=”INFINITY” migration-threshold=”1″

Apache

# crm configure primitive httpd ocf:heartbeat:apache params configfile=”/etc/httpd/conf/httpd.conf” statusurl=”http://localhost/” testregex=”service” op monitor interval=”10s”

VIPアドレス

# crm configure primitive vip ocf:heartbeat:IPaddr2 params ip=”192.168.0.20″ nic=”eth0″ cidr_netmask=”24″ op monitor interval=”10s”

ApacheとVIPアドレスを1つのグループに

# crm configure group web vip httpd

サービス側ネットワークの監視

# crm configure primitive ping ocf:pacemaker:pingd params name=”default_ping_set” host_list=”192.168.68.2″multiplier=”100″ dampen=”1″ op monitor interval=”10s”
# crm configure clone clone_ping ping

試験

手動切り替え試験のコマンドは:crm resource migrate <resource name>

migrate後は、unmigrateでモードを元に戻す。

プライマリのサーバー側を強制ダウンさせ、セカンダリ側に切り替える。

参考

  • http://linux-ha.sourceforge.jp/wp/dl/pminstall_cent5
  • http://gihyo.jp/admin/serial/01/pacemaker/0002?page=1

 

ちょいハマりと感想

リソース障害を起こした後には、リソースがそのままでは回復しないようになっている。failcountをクリアしてやれば、直った。そういった解説がないと把握できない挙動には注意。

 

 

 

 

PICNIC 〜アイディアを実現可能にする〜

リフレーミングでアイディアを出す、ここから実現可能なものとするため、案をよりよいものにする。

  • Problem(問題)
  • Ideal(理想)
  • Concrete(理想に近づくための解決策)
  • Negative(解決策の欠点)
  • Ideal(欠点を補った理想)
  • Concrete(理想に近づくための解決策)

PICNICNICNIC・・・と精度をあげていく。

発想の飛躍のしすぎに注意、地に足をつけた思考が大事

チームでやるとよい

 

 

アウトバック 〜アイディアの質を高める〜

アウトプットとフィードバックの組み合わせ

  1. 自分が考えた問題解決策を他社にアウトプット(提示)
  2. 相手から、その解決策について「良い点」「悪い点」「改善案」の3つについてフィードバックもらう
  3. 1、2を繰り返す

注意:

自分なりの解決策をよういしておく。また身近な人である程度構築して、広く属性の離れた人と交配する

(社内でもんでから社外へと広げる)