Vagrantでec2にインスタンスを作る
大まかな物は見つかるんだけど。 自分の要求通りにやっと情報が集められたから書いておく。
vagrant plugin install vagrant-aws vagrant init
Vagrantファイルを作る
# 設定定義, あんま気にしてない VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # defineについて調べる config.vm.define :amazonlinux do |amazonlinux| # ec2用のダミーbox amazonlinux.vm.box = "dummy" amazonlinux.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box" # プロビジョニングをshellで行う config.vm.provision :shell, :path => "provision.sh" amazonlinux.vm.provider :aws do |aws, override| # instanceに名前を付ける aws.tags = { 'Name' => 'make vagrant', 'Description' => 'vagrant test' } # awsのインスタンスタイプ aws.instance_type = "t1.micro" # Amazon Linux AMI x86_64 EBS(amazon image) aws.ami = "ami-173fbf16" # awsのセキュリティグループ aws.security_groups = ["お好きなもの, defaultでも良いのかな"] # "Tokyo" aws.region = "ap-northeast-1" aws.availability_zone = "ap-northeast-1a" # AWSへのアクセスキー設定 aws.access_key_id = ENV['AWS_ACCESS_KEY_ID'] aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] # awsのキーペアネームを書く aws.keypair_name = "keypairname" # ec2で作業をするユーザー名にオーバーライドする, ec2に使う秘密鍵にする override.ssh.username = "ec2-user" override.ssh.private_key_path = '~/.ssh/hoge.pem' # sedでrequitettyのとこをコメントアウト aws.user_data = <<-USER_DATA # ググったら出て来た, プロビジョニングする際にsudoが出来ない問題を対処 # user_dataという値にshellを書けるみたい, 実際は--provisionで起動しても # プロビジョニングが先に走ってしまうからエラーが出る、起動後にvagrant provisionする # あんまり良く無いと思う。。。 # インデントすると動かないので注意 #!/bin/sh sed -i -e 's/^\\(Defaults.*requiretty\\)/#\\1/' /etc/sudoers USER_DATA end end end
中々ゴールにたどり着かなかったのは
- プロビジョニングの前にsudoの設定を変える
- awsのapi周りの設定
かな。
vagrant up amazonlinux --provider=aws #インスタンス起動, プロビジョニングでこけるけど気にしない vagrant amazonlinux provision # プロビジョニング実行 vagrant amazonlinux destroy # インスタンス破棄
楽しい楽しい。 次はchefだ。
Vagrantで起動と同時にプロビジョニングする
1.3以降はprovisionがオプションになったらしい。
まあその方が正しいか。
vagrant up --help [outsource_shell] Usage: vagrant up [vm-name] [options] [-h] --[no-]provision Enable or disable provisioning --provision-with x,y,z Enable only certain provisioners, by type. --[no-]destroy-on-error Destroy machine if any fatal error happens (default to true). --[no-]parallel Enable or disable parallelism if provider supports it. --provider provider Back the machine with a specific provider. -h, --help Print this help vagrant up --provision
fuelphpでレンダリングにかかった時間と使用しているメモリを表示する
こんな感じでviewに書くと勝手に出してくれるっぽい。
Page rendered in {exec_time}s using {mem_usage}mb of memory.
fuelphpでテンプレートにバージョンを出す
あんま使う事無いだろうけど。 覚え書き。
<?php echo e(Fuel::VERSION); ?>
こんな感じ。
fuelphpで管理画面を作ってみる
- 参考
http://qiita.com/hokutoasari/items/6a39ee7524e679c6152a http://blog.kinjouj.net/fuelphp-29-ormauth.html
Ormのログイン機能を使う編集(OrmAuthを導入する)
fuel/app/config/auth.phpを編集
driver' => 'Ormauth',
とする
ログイン機能を使うdbをマイグレーション
oil r migrate --packages=auth
ログインが必要な配下にモデルとかを作ってデータを編集出来るようにする
oil g admin memo name:string
Auth_Userが見つからないとエラーが出たら これを編集して APPPATH/classes/controller/base.php
# これを↓ $this->current_user = Auth::check() ? Model_User::find_by_username(Auth::get_screen_name()) : null; # こうする $this->current_user = Auth::check() ? Auth\Model\Auth_User::find_by_username(Auth::get_screen_name()) : null;
デフォルトはadminのadminでログイン出来る
oil console
でコンソール立ち上げて
Auth::create_user('ユーザー名', 'パスワード', 'メアド');
でユーザー作る。
fuelphpでscaffoldとmigrationする
tbl
fuel/app/migrations/番号_マイグレーションファイル.php
scaffold
php oil g scaffold monkey name:string description:text
migration
php oil refine migrate
そうすっと
mysql> desc monkeys; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | id | int(11) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | description | text | NO | | NULL | | | created_at | int(11) | YES | | NULL | | | updated_at | int(11) | YES | | NULL | | +-------------+------------------+------+-----+---------+----------------+
こんな感じのテーブルが作られる。
scaffoldの引数をもう少し知っておきたい, 個人レベルだと数値とtextだけあれば十分かな。 バリデーションとか考えるともう少し知っておいた方が良いんだろうけど。
変更(ALTER)したい時は
oil generate migration add_{コラム名}_to_{テーブル名} <fieldname1>:<type1>
favoriteカラムをmonkeysTBLにtext型で追加してみる
php oil generate migration add_favorite_to_monkeys favorite:text php oil refine migrate
出来た。 その他tbl操作はリンク先で大体出来そう。