JenkinsでPhingでいろいろチェック

<前提>
・Jenkinsがインストール済み
・Jenkinsにログイン済み
・JenkinsにPHP Pluginがインストール済み

<やること>
・Phingでコードの静的チェックをできる様にする。

<インストール手順>
・Jenkinsの管理>プラグインの管理 を選択して開く
・利用可能Tabを選択
・検索窓で「Phing」と入力して実行
・Phingがでてくるので、CheckBoxにチェックをいれて、インストール実行
(再起動せずにインストールと、再起動してインストールとあるが、環境に合わせて適切な方で)
・Maven Integration plugin 成功
Static Analysis Utilities 成功
Checkstyle Plug-in 成功
Phing plugin 成功
とインストールが進む。
・完了

<Phing設定>
・build.xmlを作成する。こんなかんじらしい。

<?xml version="1.0" encoding="UTF-8"?>
<project name="プロジェクト名" default="dist">

    <property name="outputDir" value="./result/" override="false"/>

    <!-- 初期設定 -->
    <target name="prepare">
        <echo msg="初期設定" />
        <mkdir dir="./build" />
    </target>

    <target name="phpmd">
        <phpmd rulesets="ruleset.xml">
            <!-- 対象ディレクトリをmain下に設定 -->
            <fileset dir="/main">
                <!-- phpファイルのみを対象にする -->
                <include name="**/*.php" />
                <!-- vendorsディレクトリ下を対象外にする -->
                <exclude name="vendors/" />
            </fileset>
            <!-- 結果をXMLでphpmd.xmlとして出力 -->
            <formatter type="xml" outfile="${outputDir}/phpmd.xml" />
        </phpmd>
    </target>

    <target name="phpunit">
        <phpunit codecoverage="false" bootstrap="bootstrap.php">
            <batchtest>
                <fileset dir="/main" >
                    <include name="**/*Test.php" />
                    <exclude name="vendors/" />
                </fileset>
            </batchtest>
            <formatter type="xml" outfile="${outputDir}/phpunit.xml"/>
        </phpunit>
    </target>

    <target name="build" depends="prepare, phpmd, phpunit" />

</project>

・ダッシュボードに戻る
・実行対象のプロジェクトを選択する
・「設定」のメニューを選ぶ
・「ビルド手順の追加」を選択し「Phing」を選択

参考
http://www.spiceworks.co.jp/blog/?p=4188

ansible_localを使う

<目的>
Vagrantにて、ホストOSにAnsibleを入れずに、ゲストOSに入れたAnsibleでサーバを構成する

<前提>
Vagrantがインストール済み。

<Ansible設定ファイルの作成>
以下サンプル(YAML形式で記載する。)

- hosts: all
  become: yes
  user: vagrant
  tasks:
    - name: install the latest version of Apache
      yum:
        name=httpd 
        state=latest

hostsはとりあえずallとしておく。指定したい場合は別途hostsファイルの作成が必要。
下手にホスト名を記載してもうまく動かない。

<Vagrant設定ファイルの作成>
以下サンプル。

Vagrant.configure("2") do |config|
  config.vm.box = "bento/centos-7.2"

  config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh", auto_correct: true

  config.vm.provision "shell", :path => "provision/install.sh"
  config.vm.provision "ansible_local" do |ansible|
      ansible.playbook = "provision/abe.yml"
      ansible.limit = 'all'
      ansible.verbose = true
      ansible.install = true
  end
end

provision/install.shは、AnsibleをyumでゲストOSにインストールするためのシェル。
適当に作っておけば良い。

<起動手順>
vagrant init bento/centos-7.2
vagrant plugin install vagrant-vbguest
vagrant up –provision
<動作確認>
vagrant ssh
とすればログインできる。
>sudo -s
とすればrootになれるので、あとはお好きなように何なりと。

Vagrantでmountできない

yum update実行後、以下のエラーが出て、マウントできない。

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

対処方法
<ゲストOS>

yum install kernel-devel
yum install gcc make

<ホストOS>

vagrant vbguest
vagrant plugin install vagrant-vbguest
vagrant vbguest
vagrant halt
vagrant up

以上

参考サイト
http://qiita.com/DQNEO/items/2375dd8002a831268cb5

VagrantのConfigの書き方

・メモリのアサイン

    config.vm.provider :virtualbox do |v|
       v.name = "centos7.1"
       v.customize ["modifyvm", :id, "--memory", 3072]
    end

・CPU個数の設定

    config.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id, "--cpus", "1"]
    end

・ネットワークの設定(IP)

    config.vm.network :private_network, ip: "192.168.37.2"

・シェルの実行

    config.vm.provision "shell", :path => "provision/install.sh"

・LocalAnsibleの実行

    config.vm.provision "ansible_local" do |ansible|
        ansible.playbook = "provision/vagrant.yml"
    end

Ansible2.0

<前提>
・VagrantにてOSのインストール済み
・SSHログイン可能なユーザを使用する

<条件>
AnsibleがHostOSからGuestOSの設定する方法とGuestOS内Localで実施する方法とがあります。
今回は、GuestOS内Localで実施する方法を記載する。

<手順1:インストール>

>yum update
>yum install epel-release
>yum install ansible --enablerepo=epel-testing

ホストの設定

vi /etc/ansible/hosts

<手順2:playbook作成>
こんな感じにYAML形式にて作成

- hosts: localhost
  tasks:
    - name: install apache
      yum: name=httpd

<手順3:実行>
はじめに動作確認

ansible all -m ping -i hosts

実行

ansible-playbook sample.yml

Vagrant使い方

<前提条件>
・パソコンはMac
・Vagrantがインストール済み
・VirtualBox(Oracle)がインストール済み
・インストール先は以下
~/Documents/VM/vagrant/centos7/
・以下に欲しいOSがあること(今回はCentos7.2でやる)
http://www.vagrantbox.es/

<手順1:BOXインストール>
>vagrant box add centos72 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
すると、以下のような感じにBOXのダウンロードが始まる。ここはデータ量がおおいので時間かかる。

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos72' (v0) for provider:
box: Downloading: https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box
box: Progress: 3% (Rate: 826k/s, Estimated time remaining: 0:21:34)

<手順2:OSインストール>
まずディレクトリを作成して移動する。
>mkdir   ~/Documents/VM/vagrant/centos72/
>cd ~/Documents/VM/vagrant/centos72/

初期化する
>vagrant init bento/centos-7.2

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

 

<手順3:OS設定>

・ネットワーク(IPアドレス)の設定

$ vi Vagrantfile
# config.vm.network :private_network, ip: "192.168.33.10"
 ↑ ここのコメントアウトを削除してIPアドレスを好きな値に変更

<手順4:OS起動>
起動する。ちょっと時間かかる。
>vagrant up

<手順5:OSにログイン>
>vagrant ssh

<手順6:OSサスペンド>
>vagrant suspend

<手順7:OS停止>
>vagrant halt

<その他>
以下の表示がされたら、、、
default: Machine already provisioned. Run `vagrant provision` or use the `–provision`
>vagrant provision

ansible_localを使うには以下を実行してプラグインをインストール
vagrant plugin install vagrant-vbguest

<参考>

http://qiita.com/inouet/items/b36638adc2b5772db457

 

Vagrantインストール

Macにインストールします。
楽々でインストールできます。

1:サイトにアクセス。
2:Mac版を選択
3:dmpを実行
4:pkgインストール操作
5:動作確認
  コンソールを開いて以下を実行
  >vagrant –version

こんな感じに表示されて無事終了
Vagrant 1.9.1