ロックとチュウーハイとこりんがるな日々

日々のインプットした事をアウトプットする場所

第21回関西PHP勉強会に参加してLaravelエキスパート養成読本を頂きました

4/21日に開催された第21回関西PHP勉強会に参加してきました

今回の勉強会の内容はセミナー形式で行われました

・ Laravel エキスパート養成読本出版記念で、Laravel の話(@shin1x1)
・ LT1: Lumenとりあえず触ってみた感じレポート(mikakane)
・ LT2: ReactPHPはもっと流行って欲しい(たなかひさてる)

どの話も非常に興味深かったですが、やはり以前に趣味で触った事のあるlaravelに興味があったのでlaravelの 話は非常に面白かったです

そして最後にビッグなプレゼントがLaravel エキスパート養成読本が著者の一人である今回の発表者の新原さんか ら2冊プレゼントされました 2名以上が手を上げたのでじゃんけんになりましたが、「Laravel エキスパート養成読本」をゲットしました

今日やっと読み終えたので感想文を800字以内で書きます

先に結論から書きます、今からlaravelを始めようと思っている方は間違いなく読んだほうが良いと思います 発売の時期がlaravel5のリリース時期とかぶってしまった事も逆によかったと思います

書かれている内容はほぼlaravel4の内容になっていますが、laravel5の新機能についても書かれています つまりlaravel4,5どちらの情報も書かれているという事です

個人的にはまったく理解出来ていなかったlocコンテナ、ファサード、サーピスプロバイダ、Eloquentについて書か れているChapter3、RestAPIについて書かれているChapter5が読み応えがありました

特にlaravelでRestAPIは以前に自分も作った事があるのですがその時に疑問に感じたテストをどうやってやるのか やサービスとモデルの使い方などが詳しく書かれており非常にわかりやすく腑に落ちました

laravelについて書かれた日本語の書籍は少ないので是非一度目通してみてはいかがでしょうか?

ざっと目を通すだけんら2時間もあれば終わります、目を通して気になった部分はあとから詳しくみて みると良いかと思います

僕はこれから2週目に入ろうかと思います

雨のディズニーシー

目下のところ子供が爆睡中なのでnew york deliに避難中

外にいるとめっちゃ寒いのです

手袋がほしいけどどうにも売ってない
子供用や女子向けはあるが男子向けがない

ミッキーやミニーの耳付き手袋を36歳がはめるにはあと10度ほど気温が下がって生命の危険を感じてからである

そこまで寒くならんことをブッダに祈りながら楽しみとしよう

魔法にかかりながら


f:id:box406:20150121153336j:image

knife-sole prepare を実行、エラー404 Not Found だとー

knife-solo prepareを実行した所、謎のエラーに遭遇した、 404だと?なにが404なんだ? どうやらchef-soloのバージョンが問題のようです

chef-soloのバージョンを確認すると以下でした

$ chef-solo -v
Chef: 12.0.0.alpha.2

上記が返ってきます、このバージョンが問題のようです knife-solo prepareを実行すると以下のようになりErrorが発生して先に進みません

$ knife solo prepare root@49.212.185.91
Bootstrapping Chef...
Enter the password for root@49.212.185.91:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16519  100 16519    0     0  15121      0  0:00:01  0:00:01 --:--:-- 32453
Downloading Chef 12.0.0.alpha.2 for el...
downloading https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
  to file /tmp/install.sh.1500/metadata.txt
trying wget...
trying curl...
ERROR 404
Unable to retrieve a valid package!
Please file a bug report at http://tickets.opscode.com
Project: Chef
Component: Packages
Label: Omnibus
Version: 12.0.0.alpha.2

Please detail your operating system type, version and any other relevant details
Metadata URL: https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
\nDEBUG OUTPUT FOLLOWS:\n\nSTDERR from wget:\n\n--2014-10-21 11:10:36--  https://www.opscode.com/chef/metadata?v=12.0.0.alpha.2&prerelease=false&nightlie
s=false&p=el&pv=6&m=x86_64
www.opscode.com をDNSに問いあわせています... 184.106.28.90
www.opscode.com|184.106.28.90|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2014-10-21 11:10:37 エラー 404: Not Found。\n

上記のErrorの回避策についてはchefのバージョンを指定します

$ knife solo prepare root@[IP Address] --bootstrap-version 11.12.0
Bootstrapping Chef...
Enter the password for root@49.212.185.91:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16519  100 16519    0     0  15458      0  0:00:01  0:00:01 --:--:-- 33439
Downloading Chef 11.12.0 for el...
downloading https://www.opscode.com/chef/metadata?v=11.12.0&prerelease=false&nightlies=false&p=el&pv=6&m=x86_64
  to file /tmp/install.sh.1574/metadata.txt
trying wget...
url     https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.12.0-1.el6.x86_64.rpm
md5     3e4fadc93e3080ec0b2ed811f36cb8bc
sha256  42a29433f83f03fdf75a06ff65c45f0bbdeb44593b45fc0ef1717fbdb7eb8756
downloaded metadata file looks valid...
downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.12.0-1.el6.x86_64.rpm
  to file /tmp/install.sh.1574/chef-11.12.0-1.el6.x86_64.rpm
trying wget...
Comparing checksum with sha256sum...
Installing Chef 11.12.0
installing with rpm...
警告: /tmp/install.sh.1574/chef-11.12.0-1.el6.x86_64.rpm: ヘッダ V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
準備中...                ########################################### [100%]
   1:chef                   ########################################### [100%]
Thank you for installing Chef!    

これでOK、あせったYosemitenのせいかと思ってしまいましたが違うようですね

でわでわ

参考URL:

Chef-DK:'knife solo bootstrap', or 'prepare'でwgetの404エラー - 役立ちぬ開発史、それはただのブログ

ansible を使ってさくらVPSにLAMP環境を構築してみる その1

mac からansibleでさくらVPSを構築する 目的はさくらVPSec-cubeを動かす

※なぜec-cubeなのかは気にしない気にしない

今まではサーバ構築にchefを使っていましたが、今回は対象のサーバに対してchefをinstall 出来ない可能性があるので前から試したかったansibleを使ってみる事にしました

ansible を mac に install する

http://docs.ansible.com/intro_installation.html#latest-releases-via-homebrew-mac-osx

公式にhomebrewで入れろと書いてかるので素直に従う

$ brew update
$ brew install ansible

上記でさくっと入りました

※homebrewの設定は語りません

ansible を試す

  • hostsファイルを作る

    実行するサーバのIPを書く 今回はvagrantでサーバを起動しているのでhostsに192.168.33.10を記述

      $ mkdir ec-cube
      $ cd ec-cube
      $ vagranit init centos6.5
      $ vim hosts
      192.168.33.10
    
  • ansibleを実行

    鍵認証を設定していないので通常のパスワード認証を行う

    ansible ホスト -i ホストリストファイル -m 実行モジュール -u ユーザ

    --ask-pass --ask-sudo-pass はパスワード認証を行うときに必要

      $ ansible 192.168.33.10 -i hosts -m ping -u vagrant --ask-pass --ask-sudo-pass
    

    以下のerrorが発生、sshpassなるものを入れろと

      192.168.33.10 | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program
    

    http://lalyos.github.io/blog/2013/09/30/install-sshpass-on-mac/

    上のページを参考にhomebrewでinstall する

      brew install https://raw.github.com/eugeneoden/homebrew/eca9de1/Library/Formula/sshpass.rb
    

    もう一度ansibleを実行する

      $ ansible 192.168.33.10 -i hosts -m ping -u vagrant --ask-pass --ask-sudo-pass
      SSH password:
      192.168.33.10 | success >> {
          "changed": false,
          "ping": "pong"
      }
    

    上記のように返ってくればOKです

  • httpdを入れてみる

    以下を実行する

    -m 実行モジュールはyumを指定 -s sudo -a name=[httpdを指定]

      ansible 192.168.33.10 -i hosts -m yum -s -a name=httpd -u vagrant --ask-pass
    

    しばらく待つ

      SSH password:
      192.168.33.10 | success >> {
          "changed": true,
          "msg": "",
          "rc": 0,
          "results": [
              "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\n * base: www.ftp.ne.jp\n * epel: ftp.iij.ad.jp\n * extras: www.ftp.ne.jp\n * updates: mirror.awanti.com\nSetting up Install Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-31.el6.centos will be installed\n--> Processing Dependency: httpd-tools = 2.2.15-31.el6.centos for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-31.el6.centos.x86_64\n--> Running transaction check\n---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed\n---> Package httpd-tools.x86_64 0:2.2.15-31.el6.centos will be installed\n---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package            Arch        Version                      Repository    Size\n================================================================================\nInstalling:\n httpd              x86_64      2.2.15-31.el6.centos         updates      824 k\nInstalling for dependencies:\n apr-util-ldap      x86_64      1.3.9-3.el6_0.1              base          15 k\n httpd-tools        x86_64      2.2.15-31.el6.centos         updates       73 k\n mailcap            noarch      2.1.31-2.el6                 base          27 k\n\nTransaction Summary\n================================================================================\nInstall       4 Package(s)\n\nTotal download size: 939 k\nInstalled size: 3.1 M\nDownloading Packages:\n--------------------------------------------------------------------------------\nTotal                                            48 kB/s | 939 kB     00:19     \nRunning rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                         1/4 \n\r  Installing : httpd-tools-2.2.15-31.el6.centos.x86_64                      2/4 \n\r  Installing : mailcap-2.1.31-2.el6.noarch                                  3/4 \n\r  Installing : httpd-2.2.15-31.el6.centos.x86_64                            4/4 \n\r  Verifying  : httpd-2.2.15-31.el6.centos.x86_64                            1/4 \n\r  Verifying  : mailcap-2.1.31-2.el6.noarch                                  2/4 \n\r  Verifying  : httpd-tools-2.2.15-31.el6.centos.x86_64                      3/4 \n\r  Verifying  : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                         4/4 \n\nInstalled:\n  httpd.x86_64 0:2.2.15-31.el6.centos                                           \n\nDependency Installed:\n  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1                                        \n  httpd-tools.x86_64 0:2.2.15-31.el6.centos                                     \n  mailcap.noarch 0:2.1.31-2.el6                                                 \n\nComplete!\n"
          ]
      }
    

    実行結果が反映される

とりあえずここまで、次回はplaybookを作っていきます

使ってみた感想

今までサーバ構築に使っていたchef(chef-solo)に比べたら最初に用意するもの、学習すべき事がすくないと 感じました、chef-soloの実行にはknife-soloを使っていたのですが、それに相当する事が標準で出来るのも ありがたいなと感じました

2014年 マネジメントについて考えをまとめておく

マネジメントについての考え方をまとめておきます 以下の事を前提としています

  1. WEBを活用したビジネスを展開している
  2. マネジメントの対象はSE/PGと商品開発に関わるチーム
  3. 受託開発ではなく商品を自社で開発しビジネスを行っている会社でのマネジメント

基本的にはマネジメントをしたくないので、マネジメントをしなくても良いようにマネジメントを行って います

基本的には自主的に動いてほしいのです しかしベンチャーで働いているにもかかわらず自主的には動かない人がほとんどです(※僕が見てきた範囲での話ですが) たぶんこれが現実です

そういった中で日々行っているマネジメントでまずは大事にしている事を以下に書きます

  1. 強制しない事
  2. 環境を整える事
  3. アウトプットする事
  4. 続ける忍耐力
  5. マネージャーはホスト、PG/SEはお客様
  6. 八方美人になる

1. 強制しない事

強制的に従わせる事はものすごく簡単な事なんですね、でも自主的に動いてほしいという事と強制するという事は真逆 の行為です、まれに強制的にルールを作る事はありますが基本的には強制はしません

2. 環境を整える

良いツールがあるとします、あれ使いましょうよ!!ではなく聞くまえに環境を用意して試せる場所を用意してしまう ルールなんかの場合はひな形を用意して話し合いがし易い環境を前もって用意します

なにをやるにも一番めんどくさい最初の一歩となるものを用意してあげる事

3. アウトプットする事

アウトプットできる雰囲気を作る為に自分がアウトプットしまくる、強制しない事にも通ずる事ですが強制しない事を 前提にした場合、日々アウトプットしていく事でこうしたほうがいいよ的な事を小出しにして植え付けて行く

また技術的な事などは朝会の時にさり気なく小出しにしていっています

4. 続ける忍耐力

1 〜 3を続ける忍耐力は必要です、強制的にやったほうがましやけど少しづつ植え付けて行くことで文化が根付いていく と信じる心が必要かと思います

5. マネージャーはホスト、PG/SEはお客様

技術系のマネジメントの場合は実際に手を動かすPG/SEはお客様、マネージャーはホスト、いかに気持ちよくコードを 書いてもらえるかを考えて尽くしまくる事が大事

とにかく雑用を行わせない1つの事に集中してもらう環境をつくる

6. 八方美人になる

PG / SEにはクセの強い人が多いので空気を読んで個々に対応していく、自主的に動く事が苦手な人もいる 誰かに指示を出してもらう事でパフォーマンスを発揮する人のいる事を理解しておく事


1日の半分ぐらいがこういった作業で終わってしまいます、なやみは自分がどんどんコードを書けなくなっている事 と今の会社では僕が一番コードを書くのがうまいという事

※実際には大した腕ではないです、勉強会とかにいくといつも自分の腕のなさに愕然としてしまいます

マネジメントの方法については日々情報収集をして考え方を改めていこうと思っていますが今のところこんな感じで 考えています

でわであ