​Ansible メモ

Ansible メモ

CentOS7.2 だと

標準リポジトリにAnsibleがないため

EPELリポジトリを使う

yum  install  epel-release

なお、最新版のAnsible 2.0を使うなら

epel-testingリポジトリを有効化すること

yum  install  ansible  –enablerepo=epel-testing

yum  install  ansible

だけだと

Ansible 1.9.4 がインストールされるので

yum  install  ansible  –enablerepo=epel-testing

とすること

これなら、最新版がインストールされる

なお、古くても

これを実行すれば最新版になる

なお、Ansibleのバージョン確認は

ansible  –version

でできる

Ansibleの実行コマンドは

ansible サーバーIP モジュールオプション モジュール名

となり

例を書くと

ansible 192.168.1.100 -m ping

これで

pingが実行されるコマンドになる

ただし、Ansibleは

セキュリティーのため

hosts ファイルに書かれているIPでしか

実行できないため

これをやらないとコマンドは失敗になる

なので

次にAnsibleを使うための設定

Ansibleを使うなら

対象サーバーへ接続する設定が欲しいという理由のため

今回、実行してるのはCentOS7.2

このosでのhostsファイルの場所は

/etc/ansible/hosts

になる

書き方は

192.168.1.100

というようにIPを書くだけでok

なお

-i オプションをつければ

別のファイルを指定することもできる

ただし、わかりにくくなるから

デフォルトのものを使うのがおすすめ

しかし、これだけでもまだエラーになる

これは

Ansibleを使うには認証が必要だから

今回は公開鍵認証を使うことに

ssh-keygen

で鍵を作成

ssh-copy-id 192.168.1.100

鍵を安全に転送

Ansibleコマンドの詳細は

ansible –help

で確認できる

また、モジュール詳細については

ansible-doc モジュール名

で調べられる

例えば pingモジュールなら

ansible-doc ping

とすればok

空気清浄機を購入するとき選んだこと

最近、インフルエンザの流行と
子供の風邪対策、そして自身の健康管理を考え
空気清浄機を購入しました

なお、機種やその他必要な機能に関しては

空気清浄機おすすめ2016!手堅い評価ランキング

を参考にさせていただきました

必要な機能としては
乾燥対策のため加湿機能あり

壁とのスペースを作りたくないので
全面吸気や横面吸気であること

これは、子供が壁とのすきまに入り込み倒す可能性があるためでした

あたりはずれがあることを考え
最初はレンタルでお試しする予定でしたが
レンタルで借りれるものは、背面吸気のシャープ製のものだけでしたので

いろいろと考えた結果
MCK70T-W
を購入することにしました

また ウイルス対策に効果があるらしいので
バイオ抗体フィルター
も購入してみました

実際に購入し
使用していますが夜に青LEDがまぶしいのが気になります

ただモードにお任せモードがあり
これにしておけば加湿と空気清浄をしてくれるので面倒さはありません

タンクの水ですが、満水にしてから2日ほどは持ちます

rubyフォーム作成

rails でフォーム作成するときには

.erbファイルを使う

これは、rubyスクリプトを埋め込むためのファイル

phpファイルのようなかんじ

埋め込みの書き方は2つあり

<_ rubyのコード="rubyのコード" _="_"><br clear="none"></br>






<br clear="none"></br>
<_ rubyのコード="rubyのコード" _="_"><br clear="none"></br>

違いは

<_ rubyのコード="rubyのコード" _="_"><br clear="none"></br>




だと実行したあとに、結果を埋め込むこと

こちらは、

secret.yml などにAPIキーなどを書いて

これを読み込むときなどに使う

コード実行だけなら

<_ rubyのコード="rubyのコード" _="_"><br clear="none"></br>




でok


フォームは

form_for

で作成する

詳しくは

Rails】formヘルパーを徹底的に理解する

http://qiita.com/shunsuke227ono/items/7accec12eef6d89b0aa9

を参考に

ルーティングメソッド

/messages

index GET

一覧画面

/messages

create POST

作成処理

/messages/new

new GET

新規登録画面

/messages/:id/edit

edit GET

編集画面

/messages/:id/

show GET

個別画面

/messages/:id/

update PATCH/PUT

更新処理

/messages/:id/

destroy DELETE

削除処理

resources :messages

新規投稿の流れは

GETで

messages/new

へアクセス

メッセージをフォームで書き込んでPOST

POSTで

/messages

へアクセスし

書き込んだメッセージを

MessagesController#create

が受け取ることで

新しいメッセージ作成

これで

message一覧は

/messages

出みれる

1つずつの詳細をみたいなら

/messages/:id/

となる

新規登録と、詳細画面を一覧画面と同じにするなら

新しく画面の作成は不要

もし、別の画面をつくるなら作成が必要になる

index

create

は同じURL

show

update

destroy

は同じURLだけど

HTTPメソッドの種類つまり

GET

POST

DELETE

により

アクションとなる index などに自動で振り分けられる

ただし、URL直うちしても

GETメソッド以外は使えない

ちなみに

resourcesメソッドを使うことで

ビュー内で使うURLヘルパも自動作成される

URLヘルパは

リソースに必要なURLを自動作成する仕組みのこと

これで作成されたURLヘルパは

リンクのとき link_toで指定するときに使う

このヘルパ名が

_path なら相対パスだけど

_url だと絶対urlになるので注意

あと

message_path(id)

だった場合

渡すのはモデルオブジェクトのid になるけど

モデルオブジェクトを渡しても同じなので

message_path(message)

でもok

投稿機能の作成メモ

投稿機能は、Webフォームから内容を記述し

内容をDBへ保存する

これは

作成したコントローラーとモデルを使う

ちなみにモデルはdb 担当

コントローラーがphp

ビューはhtml

みたいなかんじ

まずは、routeの設定

これをやらないとバスがでない

追記するのは

resources :messages, only: [:create]

これを追記してから

rake routes

を実行すると

パスが変化するのがわかる

railsではこのように

ルーティング設定を

config/routes.rb

で設定することで

URLを生成している

これは resourcesメソッドを使うことでできる

メッセージの表示や操作をしたいのなら

resources :messages

を追記すればいい

詳しくは

http://www.rubylife.jp/rails/routing/index6.html

を参考に

構文は

resources :リソース名 do  member do    HTTPメソッド名 ‘アクション名’  end  collection do    HTTPメソッド名 ‘アクション名’  endend

Y!mobileの解約

ドコモ光をつなげたことと
Y!mobile契約から2年経過し
月7GB以上使用した場合
500MB追加するたびに500円かかるため
解約することにしました

なお、Y!mobileを解約するときに注意することは
契約更新月であるか
そして、解約することのできる店舗であるか
になります

契約更新月の確認方法を教えてください
http://faq.ymobile.jp/faq/view/106066
に確認方法が載ってます

私の場合
My Y!mobile
で確認しました

なお、解約に必要なものは
ワイモバイルのショップに何を持参すれば良いですか?
http://faq.ymobile.jp/faq/view/404309
に掲載されてますが

実際に必要なものは
運転免許証
そして、使用していたY!mobileの端末です

解約にあたり、Y!mobileの番号が必要になりますが
これは端末に入っているSIMカードがあれば問題ありません

また、私の場合
クレジットカード払いのため
印鑑は不要でした

また
解約可能な店舗の検索ですが
店舗そのものは
http://www.ymobile.jp/shop/index.html
で探せますが
注意点は、ワイモバイルショップ
を探すことで
取扱い店だと解約ができません

以前、とある家電量販店で
Y!mobileを機種変するときに
一度解約してから新規加入にすれば
ポイントなどがついてお得と聞いて
やりましたが、
取扱い店だったため解約ができず、自分でワイモバイルショップを探し
解約するまで日割りで料金を払うことになりました

Railsのログイン認証gemのDeviseの実践

前回、インストールまではできているので続き

まずはdeviseのメール送信時のホスト名を指定

config/environments/development.rb

 config.action_mailer.default_url_options = { host: 'localhost:3000' }

を追加

もし、cloud9 の場合には

  #devise 設定
  config.action_mailer.delivery_method = :test
  host = 'http://techacademy-snowpooll.c9users.io'
  config.action_mailer.default_url_options = { host: host }

というようにホスト名をいれる

追記場所は
最終行の end の前の行

次に root_urlを指定 
deviseはログアウト時などのリダイレクト先としてroot_urlを使うため
これがないとエラーになるため

config/routes.rb

root to: "home#index"

を2行目に追記

次に
実際のControllerやViewがないため作成

rails g controller Home index show

次に
app/views/layouts/application.html.erb

deviseはログインやログアウトなどのときに、flashにサクセスやエラーメッセージを追加するので、その表示領域を追加

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>

次にdeviseのモデルを作成

rails g devise User

とりあえずデフォルトでマイグレード

rake db:migrate

そして
・ログインしていない場合は、「サインイン」と「ログイン」のリンク
・ログインしている場合は、「プロフィール変更」と「ログアウト」のリンク
を追記するため
app/views/layouts/application.html.erb
へ追記

<header>
  <nav>
    <!-- user_signed_in? はユーザがログインしているか調べるdeviseのHelperメソッド -->
    <% if user_signed_in? %> 
      <!-- current_user は現在ログインしているUserオブジェクトを返すdeviseのHelperメソッド -->
      <!-- *_path はUserモデルを作成したときに、
        deviseにより自動で作成されてますので、rake routesで確認できます -->
      Logged in as <strong><%= current_user.email %></strong>.
      <%= link_to 'プロフィール変更', edit_user_registration_path %> |
      <%= link_to "ログアウト", destroy_user_session_path, method: :delete %>
    <% else %>
      <%= link_to "サインイン", new_user_registration_path %> |
      <%= link_to "ログイン", new_user_session_path %>
    <% end %>
  </nav>
</header>

を追記する

これで

rails s

でアプリを起動してログインできればOK

Railsのログイン認証gemのDeviseのインストールと実験

まずはログイン認証ができるように実験

ソースコードの管理もしたいので、Github へリポジトリ作成

Github へログインして +アイコンをクリックし
new repository をクリックし、リポジトリを作成

Screenshot from 2016-08-30 23:20:32

リポジトリ名は devise_test として作成

Screenshot from 2016-08-30 23:22:14

次に、ローカルマシン ubuntu で開発のためのディレクトリ作成

mkdir ekitika
cd ekitika

ここへ各種機能の rails プロジェクトを作成して実験していく

今回は devise の実験なので

rails new devise

でアプリを作成

ローカルマシンはネットの通信制限を受けているため bundle install に時間がかかる
最初に -g オプションで初回から行わないように設定するべきだったかも

無事にできたら、次に github に転送しておく
これをやっておけば、バックアップにもなるので

まずはローカルリポジトリの作成とコミット

git init
git add .
git commit -m "first commmit"

次に github へ転送

git remote add origin https://github.com/Snowpooll/devise_test.git
git push origin master

で転送

これでバックアップのかわりにもなるので、まずはGemfile の編集
25行目あたりに

#devise install
gem 'devise'

を追記して保存したら

bundle install

を実行

これで devise のインストールが完了
次は、deviseに関連したファイルをRailsプロジェクトに追加

rails g devise:install

続きは次回

ちなみに、cloud9 のOSとかを調べたかったので

 cat /etc/lsb-release 

を実行した結果

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"

ということが判明

サーバーで同じ構成をつくるときの参考になりそう

rails 開発に便利な Atom パッケージの準備

cloud 9 で開発をする予定だったけど、
Y!mobile の通信制限がかかり、テザリングの回線で使っていた au の通信容量も使いきったため
自宅の ubuntu サーバーで開発することに

ソースコードは github で管理するとして
開発に使うエディタは Atom を使うことに

まずは、rails での開発に使うと便利なパッケージのインストール確認から

まずは git-plus
これがあれば端末を開かずに Atom から git の操作が可能になるし
候補を出してくれるので、コマンドのミスタイプ防止もできるので

次に git の状態をみれる
tree-view-git-status
これでファイルの状態が色分けされるので、管理しやすくなる
ちなみに git で管理していないのは緑
commt していないのは黄色
commit したのはグレー
という色分け

あとは ruby と rails のコード補完があると良いので
autocomplete-ruby を入れてコード補完できるように設定

rails-transporterをいれて
model から関連する controller を開いたり、controller から 関連する helper を開いたり出来るように

次に、CSSで設定するときに
ctrl + alt + c で色を簡単に設定できるパッケージ
color-picker をインストール

Screenshot from 2016-08-30 22:55:01
こんなかんじで色を簡単に設定できるので便利

あと、パスを出せるみたいなので
autocomplete-paths を追加

とりあえず、パッケージの確認はこのあたりにして、他に便利そうなものがあれば追加していくという方針で

ちなみに GitHub や cloud9 などのサービスのアカウント管理には
パスワード管理ソフト KeepassX がおすすめ

ubuntu だけでなく Mac でも使えるので

GithubPage の作成

GithubPage を作成し、ポートフォリオサイトにしてみようということで
まずはリポジトリを作成

ただし、リポジトリ名を間違えたため、一度リポジトリを削除します

Github でのリポジトリの削除は
リポジトリの画面で Setting タブをクリックします

Screenshot from 2016-07-05 01:05:17

次に、下にスクロールさせて Delete this repository をクリックします

Screenshot from 2016-07-05 01:06:53

そして、リポジトリ名を入力し

Screenshot from 2016-07-05 01:07:56

I understand the conceqenses delete this repository
をクリックすれば削除できます

これで新しくリポジトリを作り直します

New repository をクリックし、新しく作成します

Screenshot from 2016-07-05 01:10:59

作成するときに気をつけることは、リポジトリ名を
ユーザ名.github.io
となるようにすることです

あとは public を指定して、Create Repository をクリックすればリポジトリを作成できます

Screenshot from 2016-07-05 01:12:46

私の場合、Snowpooll.github.io とするのを snowpool.github.io としたため
githubPage が存在しませんとなってしまい、作りなおすことになりました