Vagrant+Ansibleでhttpd, MySQL, PHPをソースからインストールし起動確認するまで

開発環境

  • MacOSX Yosemite 10.10.3
  • VirtualBox 4.3.26 r98988
  • Vagrant 1.7.2
  • Ansible 1.9.1

手順

1. Vagrant Box追加

1
$ vagrant box add centos6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.1/centos65-x86_64-20131205.box

2. gitリポジトリをclone

1
$ git clone https://github.com/kenzo0107/Vagrant-Ansible

3. vagrantからVM起動

1
2
$ cd Vagrant-Ansible/centos6
$ vagrant up

4. ssh-config設定をssh.configへ転記

1
$ vagrant ssh-config > ssh.config

5. VM疎通テスト

1
$ ansible default -m ping
1
2
3
4
default | success >> {
"changed": false,
"ping": "pong"
}

上記のようにsuccessと出力されれば成功

6. Ansibleで環境構築実行

1
$ ansible-playbook lamp.yml

時折、Timeoutが確認されましたが、
再度実行いただくと問題なく構築されたことを確認してます。

7. Apache起動確認

http://192.168.33.10にアクセスし
Working!と表示されれば成功

8. phpからMySQLへの接続確認

http://192.168.33.10/dbtest.phpにアクセスし
Connect Success: Localhost via UNIX socket
と表示されれば成功

以上です。

MacOSX環境にgoインストールして実行確認まで

環境

  • MacOSX10.10.3 Yosemite

インストール手順

brewでインストール

1
$ brew install go

goバージョン確認

1
$ go version

.bash_profile に追記

※zshの場合、~/.zshrcに追記

1
2
3
export GOROOT=/usr/local/opt/go/libexec
export GOPATH=$HOME
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

サンプルファイル(hello.go)作成

vim hello.go

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Printf("Hello, World\n")
}

ファイル実行

1
go run hello.go

「Hello, World」と表示されれば成功!
Go言語のインストール完了です。

以上

nslookup で レコードタイプ確認

概要

DNSのクラウド管理サービス(お名前.com等)でレコード設定すると
「設定反映まで72時間掛かる場合があります。」
とメッセージが表示されることがあります。

設定確認法としてnslookupコマンドで設定を確認してみたのでメモ

手順

CentOSにPHPUnitをComposer.phar経由でインストールする。

概要

yum でインストール場合、以下コマンド実行します。

1
$ sudo yum install php-xml php-pear php-phpunit-PHPUnit --enablerepo=epel

yumの場合、既存phpモジュールを上がいて既存環境に影響を与える可能性があります。
その為、composer経由で影響なくインストールする手順を以下にまとめました。

手順

net-tools vs. iproute2 対応表

RHEL7/CentOS7ではnet-toolsを廃止予定としています。

ipコマンド推奨の理由は以下。

net-toolsでは、

  • ネットワークトラフィック制御対応できない。
  • ルーティングテーブルを複数保持するような複雑なルーティングを実現できない。
  • ifconfigでは/procからの情報を出力しており、ipコマンドのnetlinkAPIを利用した方が数ミリsec速い。

http://linuxjm.osdn.jp/html/LDP_man-pages/man7/netlink.7.html

なので、徐々にipコマンドに慣れていきたい。

  • net-tools vs. iproute2

|*net-tools |*iproute2 |
| ifconfig | ip l (ip link) |
| ifconfig -a | ip a show (ip addr show) |
| ifconfig eth0 up | ip link set eth0 up |
| netstat | ss |
| netstat -i | ip -s link |
| netstat -l | ss -l |
| netstat -r | ip r (ip route) |
| route [add or del] | ip route [add or del] |
| route -n | ip route show |
| arp -n | ip n (ip neighbor) |

AnsibleでSentry導入!起動確認まで10分以内♪

Sentryとは

Sentryはアプリからイベントログを送信し集計するツールです。
エラーログの管理にも利用できます。

そのエラーが解決したかしていないか、どの程度の頻度で発生するか、などグラフ化してくれます。

他言語対応していたり
非エンジニアのプロジェクトメンバーにも
エラーログを意識させることができるので
その辺りも有用です。

概要

以前、 MacOSX+Vagrant (CentOS7)にSenrtyをインストールして動作確認するまで
という記事を書きましたが
今回はそれをAnsibleでまとめました。

環境

  • MacOSX 10.10.3 Yosemite
  • Virtual Box 4.3.26
  • Vagrant 1.7.2
  • ansible 1.9.1
  • CentOS7

手順

GithubのREADMEを参照してください。
手順通りで10分で起動確認できます。

https://github.com/kenzo0107/vagrant-ansible-sentry-centos7

簡単♪ Vagrant で Ansible 設定 - pingで疎通確認までを3分で実施

Vagrantでローカル開発環境構築を簡易的にAnsibleで実施した手順を
以下githubにまとめました。

Ansibleの初期設定が面倒だったのでそこを簡易化することに努めました。

独自git-hooksをglobal設定

概要

ローカルの全git管理の開発環境に適用する。

やったこと

今回はpre-commitの設定

  • PHPのシンタックスチェック
  • masterブランチでのcommit禁止
    → masterはmergeしてpushのみ。

※PHPのシンタックスでphpmdを利用しているので phpmdインストールしておく

1
$ brew install phpmd

手順

以下、git-hookのREADMEに手順記載しました。

https://github.com/kenzo0107/git-hooks

備考

その他、pre-pushで今いるbranchから
同名のリモートbranchにのみpushを許可するなど
諸々まとめたらまた記載します。

以上

SSH autologin でサーバログイン 〜毎回sshコマンドいちいち打つのはやめよう〜

環境

MacOSX 10.10.3 Yosemite

概要

サーバへSSHでログインして、と伝えると
Excelやらテキストを開いてサーバ情報をコピペしてはっつけて…
と頑張っている人をみてこれはしんどそうだなぁ
と思って作ったシェルです。

手順

以下gitにまとめました。
使い方はREADMEに書いておきました。

サーバ情報はprojects.yamlに追記していきます。

https://github.com/kenzo0107/SSHAutoLogin

以下のような具合にシェルコマンド実行すればログインできます。

hoge : プロジェクトの省略名
prd : ログインしたい環境

1
$ sh al.sh hoge prd

以上