Vagrantインストール

ECサイトの開発をdocerベースでやろうとしていたけどVagrant全く触っていない。というわけで、しばらくは勉強を兼ねVagrantベースで開発してみようと思う。

CentOS7のホストにインストールを開始。
KVM+qumeでも動くとのことでさくらのナレッジさんをそのままコピペしてインストール実行。

[yoshitake@localhost ~]$ sudo vagrant up
[sudo] password for yoshitake:
Bringing machine 'default' up with 'libvirt' provider...
==> default: Cleaned up shared folders
==> default: ================
==> default: Machine id: a3d96b45-fd52-4590-a598-9a63744b7d58
==> default: Should be mounting folders
==> default: /vagrant, opts: {:guestpath=>"/vagrant", :hostpath=>"/home/yoshitake", :disabled=>false, :__vagrantfile=>true, :target=>"/vagrant", :accessmode=>"passthrough", :mount=>true, :readonly=>nil, :mount_tag=>"05e62b45705da84350317538981ae9c"}
==> default: Starting domain.
There was an error talking to Libvirt. The error message is shown
below:

Call to virDomainCreateWithFlags failed: 内部エラー: モニターに接続中にプロセス が終了しました: 2016-09-07T21:13:31.339854Z qemu-kvm: -device virtio-9p-pci,id=fs0,fsdev=fsdev-fs0,mount_tag=05e62b45705da84350317538981ae9c,bus=pci.0,addr=0x4: 'virtio-9p-pci' is not a valid device model name

根深そう。。。。。

 

まともにやってくとはまりそうなのでvirtualboxで起動。

sudo vagrant destroy
sudo vagrant up --provider=virtualbox

ワーニングがでてしばらくリトライ繰り返した後に終了。

default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using newSSH key...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

原因はVagrant 1.8.5のバグとのことでこちらを参考に修正。

一度起動しただけで、suspend->resumeで再度発生。CTRL+Cで一旦停止しhalt->upとしたところまだ発生。時間なくなってきたので状況メモ書いて後で確認。

 

(9/16追記)

リンク先のように plugins/guests/linux/cap/public_key.rb

chmod 0600 ~/.ssh/authorized_keys

を追記しているがゲストのauthorized_keysがvagrant destroty & upしても664になっている。

何か手順が間違っているかもしれないけど、ゲストのauthorized_keysを直接

chmod 600 authorized_keys

して対処。こんどこそ動いているっぽい。とりあえず作るたびにchmodすることにする。

 

(10/8追記)

単にTypoでした。手動でchmod対応だと、Test Kitchenが動かないですね。

 

オンラインショップ作成開始

オリンピック期間中は店が暇そう。
ということで、1年ぐらい前に作りかけてそのまま放置していたオンラインショップを改めて作り直そうと思う。
といっても、主目的は環境構築をほとんどしなくなって時代に全く追いついていないのでエンジニアとしての勉強。

というわけで、月の売り上げがあるかわからないものにリソースを突っ込む。

環境)
本番環境:既存のさくらVPS(CentOS6)に他と相乗り
開発環境:自宅の物理サーバ(CentOS7)上のDockerでCentOS6
Webサーバ:nginx(現在apache)
ソース管理+マイグレーション:gitベース(そのままだとカスタマイズしたときに面倒ぽいのでこちらの方法で)。ChefとDockerもここに。Jenkins2は開発機へのデプロイまでやろうと思う。
バックアップ:もりっとmondo+トランザクションデータはEC-Cubeの機能理解してから。

Windows 10 Anniversary Updateで(?)起動しなくなった

さっきWindowsマシンの電源をいれたらWindowsが起動しなかった。

最初は黒い画面にyという文字だけ表示される状態。

電源を数回入れ直したらWindows10の画面が表示され「以前のバージョンのWindowsを復元しています」と表示されしばらく待機し、Windowsが再起動。その後、使えるようになる模様。(まだWindowsの起動待ち)
再起動後アップデート前の状態でWindowsが使えるようになりました。

アニバーサリーアップデートでたばかりなのでそれの障害を踏んでしまったんだと思う。
Bash使いたかったけどゆっくりまつか

2016/8/5追記)
待とうと思ったら、OSが不安定のようで再度アップデートかけたらうまくいったようです。違いはさしてあったUSBメモリを抜いたぐらいかな?
再現できない(&する気もない)ので原因は特定できませんが。

メールが受信できていなかった

ボルダリングの課題変更などでバタバタして気づいていなかったけど2週間ほど前から会社のメールが受信できていませんでした。

原因はサーバにhostnameが設定されていなかったためで、hostnameを設定しPostfixとDovecotを再起動して復旧。停止期間中のメールも受信できました。

修復したけど切り分けでしたことをメモ。

環境はCentOS6+Postfix+Dovecot。

日曜日にしばらくメールが来ていないことに気づき、携帯からメールを送ってみたが届かず。

 

カーネルアップデート後にサーバ再起動していたので、PostfixとDovecotが起動しているか確認したけど問題なさそう。

chkconfig –list
ps -Af

メールクライアントがうまく同期していない可能性を考えてサーバ側の受信状況も確認したけどサーバのメールボックスにも届いていない。

mail -f ~/Maildir

そのころのメールログ(view /var/log/maillog-20160724)を見直すとエラーいた。

Jul 18 01:47:38 epea postfix/local[15727]: warning: valid_hostname: numeric hostname:数字でIP
Jul 18 01:47:38 epea postfix/local[15727]: fatal: unable to use my own hostname
Jul 18 01:47:38 epea postfix/smtpd[15722]: disconnect from 接続元メールサーバ名
Jul 18 01:47:39 epea postfix/qmgr[1697]: warning: private/local socket: malformed response
Jul 18 01:47:39 epea postfix/qmgr[1697]: warning: transport local failure — see a previous warning/fatal/panic logfile record for the problem description
Jul 18 01:47:39 epea postfix/master[1685]: warning: process /usr/libexec/postfix/local pid 15727 exit status 1

「ホスト名(文脈的にはドメイン名?)が数字だよ。そんな変なの使えんよ。」ということっぽい。

Postfixの設定を確認すると「mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain」となっていてこちらによると$myhostnameのデフォルト値は「hostname」コマンドで得られるローカルホスト名らしい。

postconf -n

hostsにホスト名を設定していないからサーバ再起動時にホスト名がデフォルトの数字になってローカル転送できなくなっていたということらしい。そもそもいつどんなホスト名を設定したのかも覚えていないけど、メールサーバのインストール前にたまたま何か設定していて動いていたということらしい。

転送を考えなければ$mydomainが正しく設定されていれさえすれば$myhostnameはなにでも動くっていうことね。ということでhostnameを適当に設定したうえでPostfixとDovecotを再起動して暫定対処。

そもそもmydestinationを$mydomainだけにすれば十分なのだろうけどインフラ周りをちゃちゃっといじるのは怖いのでまたゆっくりやろうと思う。(後回しになってサーバ再起動してはまったらこの記事を自分で見直す)

コウモリ対策

店のシャッター付近に住み着いているコウモリ。営業時間中に現れたりと厄介なので効果がるという中で比較的手軽なハッカ油を試してみた。

薬品が強すぎて液が直接触れるといけないというのでバケツに雑巾をしきその上に10滴ぐらいたらしてみる。
40坪ぐらい(高さ4m)のうちの店だとそれぐらいで十分なようで、飛び回っていたコウモリたちも1分ほどでそそくさと退店。
短期的な効果は今のところかなり高い。
においははっきりとミントのにおいがするので気になる人は使えないかもしれない。
夜中に帰ってきている形跡はあるので、何滴かたらすというのでなく長時間じんわりでつづけるように変えた方がよさそう。
まだ、使い始めて数日なのでそのうち慣れてしまうかもしれない。

Windows 10のBashちょいと待つか

諸事情ありでgrepとsed(とlogresolve)を使う必要があるのでWindowsマシンしかない店の環境でもsshしないでよい環境作るかと思い調べてみる。

初めにインストール方法を調べてみると「64bit版のWindows 10環境が必要である。」
と、いきなり32bitの店PCでは使えないという結論に。
まだJavaエンジニアだったころに買ったPCで64bitにするとメモリ使用量が増えるので32bitにしてました。

まあ、調べだしたついでなので64bitの事務所PCにいれるかと思ったけど、そういえば夏に「Windows 10 Anniversary Update」と書いていたなと思い調べてみると、たぶん7/29にリリースなのね。
触る時間もほとんどないし正式リリースまてばいいかw

google的には京都=京都市なのか??

「ボルダリング+京都」でgoogle検索にかからなくなって数カ月。

この間から本腰を入れてSEO取り組みだしたけれども「ボルダリング+京都」では検索結果の一番最後まで探してみてもいまだかからず。

ボルダリング単体での検索順位はぼちぼち上がってきたのに。。。

ふと、思いついて「ボルダリング+京都」で検索をしてみると上位に掲載されている。

google的には「京都っていったら京都市だろ」→「宇治は京都ではないので除いておくか」って判断なのか?そうだとすると、地域SEOゆるめるのはいろいろ副作用が強いので「ボルダリング+京都」での検索順位上げるのは難しそうだな。。。

どうやら失敗

先日始めたSEO対策ですが予定していた対応だけでは「京都+ボルダリング」でgoogle検索した結果ではロシェ・マキシマのトップページが検索の下の順位にも引っかかりませんでした。

だいぶ下の方とはいえほかのページはちらほらと引っかかるようになってきたので全く効果がないわけではなさそうだけど検索に引っかからない理由は最初に想像していたものではないようです。

検索にかかるように別の対応取らないと。。。

 

seo_20160719

 

AWSでPSQLが入っていなかったのでyumインストール

AWSでPSQLが入っていなかったのでyumインストール。

結論としては特にはまるポイントもなく通常通りでいけた。

(青字が入力)

$yum search postgresql
Loaded plugins: priorities, update-motd, upgrade-helper
================================================================= N/S matched: postgresql ==================================================================
(中略)
postgresql92.x86_64 : PostgreSQL client programs
postgresql92-contrib.x86_64 : Extension modules distributed with PostgreSQL
postgresql92-devel.x86_64 : PostgreSQL development header files and libraries
postgresql92-docs.x86_64 : Extra documentation for PostgreSQL
postgresql92-libs.i686 : The shared libraries required for any PostgreSQL clients
postgresql92-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql92-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql92-plpython26.x86_64 : The Python2 procedural language for PostgreSQL
postgresql92-plpython27.x86_64 : The Python3 procedural language for PostgreSQL
postgresql92-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql92-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql92-server-compat.x86_64 : PostgreSQL server config files for backward compatibility
postgresql92-test.x86_64 : The test suite distributed with PostgreSQL
postgresql93.x86_64 : PostgreSQL client programs
postgresql93-contrib.x86_64 : Extension modules distributed with PostgreSQL
(中略)

Name and summary matches only, use “search all” for everything.

家の環境の最新クライアント(psql)がpostgresql93.x86_64ぽいので確認

$ yum info postgresql93.x86_64
Loaded plugins: priorities, update-motd, upgrade-helper
Available Packages
Name : postgresql93
Arch : x86_64
Version : 9.3.9
Release : 1.58.amzn1
Size : 4.2 M
Repo : amzn-updates/2015.03
Summary : PostgreSQL client programs
URL : http://www.postgresql.org/
License : PostgreSQL
Description : PostgreSQL is an advanced Object-Relational database management system (DBMS).
: The base postgresql package contains the client programs that you’ll need to
: access a PostgreSQL DBMS server, as well as HTML documentation for the whole
: system. These client programs can be located on the same machine as the
: PostgreSQL server, or on a remote machine that accesses a PostgreSQL server
: over a network connection. The PostgreSQL server can be found in the
: postgresql-server sub-package.

あっていたのでインストール

$ sudo yum install postgresql93.x86_64

(中略)

Complete!

$ psql -h ホスト名 -U ユーザ名 -d DB名

つながった。

 

効果でてきたかな??

「ボルダリング」のみで京都市より検索したら5番目に表示されていました。日によって変動あるけどこれぐらいの位置に表示されるのはめったになかったのでSEOの効果出てきたかな??

「ボルダリング 京都」でも150番~300番ぐらいとかなり下の方とはいえ店のページが出てくるようになってきた。今のところ、順調にいっているみたい。

 

ボルダリングでの検索結果 seo_20160712_bol

ボルダリング+京都での検索結果 seo_20160712