Vagrantで複数サーバー起動してAnsibleを動かしてみるテスト【#np2020】

ansible.png

業務では前任者が選定した「Chef」を使って環境構築を行っているのですが、色々調べるに最近は「Ansible」を使うのが主流っぽいので次のサーバではそれを使うことにしてみました。概念としては、管理用のサーバを1つ用意してそこにAnsibleの設定を書いておいて、そこでコードを実行することで、更新対象のサーバに一斉に設定を反映できる仕組み、という感じですよね。なにそれやばい。しかし見たことも触ったこともないのでいまいち設定や実行のイメージがつかめない。だったらまあ、簡単な環境を作ってハンズオン(体験学習ぐらいの意味)してみればいいんじゃない? やってみた。

続きを読む

開発環境の整備(Vagrant+VirtualBox+CentOS7.6+PHP7.1)【#np2020】

vagrant.png ローカルの開発環境として、Vagrantを使います。Macの方がセットアップ・運用共にが楽なんですが、Windowsでも問題なくできます。

概要

  • 使用OS:Windows 7
  • ゲストOS:CentOS 7.6
  • 仮想環境:Vagrant 2.2.2 + VirtualBox 6.0.0

手順

  1. VagrantとVirtualBoxをインストール
  2. CentOS7.6を追加してVagrant起動
  3. PHP 7.1をインストール

参考サイト

基本的には、こちらの記事を参考にさせていただきました。 Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する – Qiita Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築 – Qiita ただ記事と時差があるのか個別にハマったところも何点かあったので、それらについてはまた別の記事を参考にしています。

続きを読む

サイトリニューアルの話がなんだか大掛かりになってきてる【#np2020】

ノマドワークのプログラマー ※リニューアルあるあるです 少し前に サイトのリニューアルをしようかな という話を書きまして、ローカルでBootstrapでテンプレート作ったり、SSLに対応させたり してたんですが、その過程で重要度の低いサイトから順に、GitHubと連携させつつsvnからgitに移行としようとしていて衝撃が。サーバのOSが古すぎて最新版のOpenSSLが入らず、GitHubと連携できない。マジで。 使っているOSはCentOS5.6で確かに古い。今のサーバ(さくらのVPS)を契約した時点で既に大分枯れていたと思うんだけど、使い慣れてるからって言う理由で選択したんだよね。個人サイトの環境なんだからもっと冒険しておけば良かった。 ここでGitHubを諦めるという選択肢ももちろんあるんですけど、仮にサーバが止まっても収入がなくなるわけでも責任問題になるわけでもなし、じゃあもこの際サーバを引っ越しましょうかということに。なんでそうなる。

続きを読む

【メモ】Vagrant で共有フォルダのマウントに失敗する

vagrant.pngのサムネイル画像 試したいことがあって通常使用しているのとは別にテスト用にレポジトリをcloneしてVMを作るということをしたらば、次の様なエラーが。

Vagrantで共有フォルダのマウントに失敗するときの対処方法 – Qiita

Failed to mount folders in Linux guest. This is usually because the “vboxsf” file system is not available. Please verify that the guest additions are properly installed in the guest and can work properly. The command attempted was: (中略) The error output from the last command was: /sbin/mount.vboxsf: mounting failed with the error: No such device

要するに共有フォルダがマウントできない、そもそもvboxsfが見つからんと言われているみたいです。Guest Addtionsがちゃんと読み込まれてないっぽい? 上記エントリではプラグイン「vbguest」をインストールしておけば解決してくれると書かれているのですが、僕の環境ではどうも解決してくれない。「解消しない場合」という項目にあったこちらを参照したところ、逆に「vbguest」が問題になるケースがあるとのこと。 つまりこう:

vagrant-vbguestプラグインがGuestAdditionsを無効にしてしまう – Qiita

  1. VirtualBoxのバージョンとGAのバージョンが異なるためvbguestプラグインがGAの再ビルドを始める
  2. インストール済みGAが削除される
  3. アクティブなkernelと同じバージョンのkernel-develをインストールしようとするが、より新しいkernelが公開されているのでみつからない
  4. GAのビルドが失敗し、GAが動作しない状態に

なるほど。 結局どうしたらいいかっていうと、Guest OSのkernelをアップデートすれば幸せになれるらしいので、次のコマンドを実行。
$ vagrant ssh -c 'sudo yum update -y kernel'
$ vagrant reload
その上で vagrant reload してやると、
  1. 正しい kernel-debel を取得する
  2. 正常に GuestAddtions が更新される
  3. 正常にマウント出来る
という流れで無事起動に成功。 軽くハマって余計な時間食っちゃった。 とりあえず直って良かったです。感謝。

続きを読む

ブログをSSL化しました。

03_01.jpg 自動的にリダイレクトするようにはなってますが、今後は以下のURLでアクセスしてください。 よろしくお願いします。 https://nplll.com 長いこと「やらなきゃなー」と思いつつ面倒で放置していたんですけど、ちょっと時間が取れそうなタイミングが合ったのでえいやっとやってみました。結果から書くと、SSLに対応するだけだったらくっそ簡単なので、コマンドライン打つのに抵抗が無い程度の人はみんな今すぐやったら良いと思う。もっと早くやれば良かった。うちの環境は、ムームードメイン+さくらVPSなんだけど、さくらのSSLを使えば超簡単にできるのでオススメ。価格も年972円と超安い。 具体的な作業手順はこちらを参考にしてください。 SSL証明書を取得しよう – Qiita さくらVPSにSSL証明書を導入しHTTPS通信の構築 – Qiita サイト認証とか確認とかクローラー巡回のタイミング次第で10-30分程度の時間が掛かる場合もあるけれど、順を追ってやっていけば大丈夫。

続きを読む

gettextのmo/poファイルを更新したらApacheを再起動する

PHP logo

サイトを国際化するにあたってgettextを使って、mo/poファイルを作って翻訳を行うということはよくあり、今触っているシステムでもFuelの下で(Fuelのi18nは使わずに)gettextを使って日本語版と英語版の切り替えを実現しています。当然、このファイルは頻繁に更新されるわけですが、ローカルで確認していると更新後にロケールが正しく取得されずに日本語版で英語が表示されてしまうことがよくあります。何度かページ更新したり、時間をおいたりすると直るんですが、ローカルならまだしも本番環境で同じことが起こったら軽く事故ですね。ファイルサイズとかサーバスペックとかでキャッシュ更新タイミングが決まってるのか、運良く本番環境では発生していなかったようですが。

続きを読む

サイトをSSLに対応させようと思って上手く行かなかった

website_normal.png 先日の日曜日、久々の何も予定がないお休みということで、朝からこの対応をしていたのだけど。 サイトをSSLに対応させないとGoogle Chromeに怒られるようになるらしい | mutter 上手く行かなかった。

上手く行かなかった原因

環境さえ整っていれば、SSLへの対応はとてもシンプル。
  1. 秘密鍵・CSRの作成、設定
  2. Let’s EncryptのCertbotをインストール
  3. 証明書を取得して設定
めちゃくちゃ雑に書くとこういう手順で行けるんだけど、僕の環境ではCertbotが上手く入らなかったし、その他でも色んな苦労があった。基本的な原因はもうすべてこれ。 サーバのOSが古い(CentOS 5.6) これに尽きます。このせいで、
  • OpenSSL0.9.8なので、wgetやcurlを使ってhttps経由でファイルを取得しようとすると失敗する
  • OpenSSL 1.0系は入らない
  • Certbotが要求するPythonは2.7以上だけど、サーバでは2.4
  • SLCに対応していないのでPython入れるのに一苦労。ソースコードダウンロードして手動でインストール
  • ここでもOpenSSLしんどい
  • 既存のPython置き換えるのどうすんだっけ
  • 関連モジュールとかいろいろ入らない
  • 何とか入れたはずだけどCertbotが上手く動かない
書き出すだけであーってなる。 さくらのSSLでラピッドSSL契約しても良いんじゃないのという話もあるけれど、ドメインを複数持っててサブドメインも複数あるんで、全部カバーするとすごいコストになっちゃう。出来るだけ無料でやりたい。 くそう。 多分、上手いこと回避してやる方法はあるとは思うんだけど、もともと習熟しているわけでは無い上に長いこと触ってなかったから1つ1つが時間掛かって仕事だったら給料返すレベル。 これはもう、引っ越すしかないのでは……(ヤケ)

続きを読む