• FuelPHP + Ansible で超ラクラク開発/運用 - FuelPHPのインストール編

    開発者でも簡単にインフラ構築できる時代が来ました。Ansibleという強力な環境構築ツールを利用すれば簡単に環境構築ができます。

    環境構築のツールはそのほかchef, puppet, dockerなど様々ですが、なぜAnsibleを選択したのかは以前筆者が書いた以下の記事を参考にしてください。

    Qiita ソフトウェアエンジニアからみた環境構築自動化ツールの比較、感想

    PHPのフレームワークも近年人気を増しているLalavel, 定番CakePHP, 超高速PhalconなどありますがなぜFuelPHPを選んだかというと機能が豊富なことと日本語の情報がたくさんあるからです。単純に好みです。

    これからFuelPHP + Ansibleを使った開発のノーハウを次のような順で紹介しようと思っています。

    • パート1:FuelPHPのインストール編
    • パート2:メンテナンスモード切り替え編
    • パート3:デプロイ編
    • パート4:開発/本番環境の運用時の構成、注意点

    以下の開発環境をベースに説明させていただきます。また、Ansibleの概念を知っている人向けです。

    • MacOS X 10.10.2
    • ansible 1.7.2
    • FuelPHP 1.7

    ※ ansibleのインストール手順はGoogle検索するとたくさん出てきますので割愛させていただきます。

    AnsibleでFuelPHPをインストールするPlaybookを実行するためには~/role/ロール名/配下にその手順をyaml形式で書く必要があります。以下、~/role/ロール名/task/main.ymlの処理内容です。

    - name: ①Copy the code from repository
    git: repo={{ repository }} dest={{ root_dir }} accept_hostkey=yes
    sudo: no
    
    - name: ②comporser self-update
    shell: php composer.phar self-update chdir={{ root_dir }}
    
    - name: ③comporser update
    shell: php composer.phar update chdir={{ root_dir }}
    
    - name: ④set fuel_env.
    shell: env FUEL_ENV=production php oil -v chdir={{ root_dir }}
    
    - name: ⑤create link.
    file: path={{document_root_path}} src={{fuel_public_dir_path}} state=link
    
    - name: ⑥db migrantion.
    shell: FUEL_ENV=production php oil refine migrate chdir={{ fuel_dir_path }}
    

    処理内で使用される {{ }} 中は変数名が入ります。 変数の定義は/role/ロール名/vars/main.ymlに記述します。上記の内容ですと

    ...