Post

インフラ

2017-03-15 20:49:51

Ansibleでcronを設定

概要Ansibleでcronを設定するタスクです。 Playbook以下は毎分タスクを実行する設定の例です。 --- - hosts: vps become: yes user: root tasks: - name: Output recently logined users cron: name: last.sh job: last.sh minute: "*/1" 注意点としては、*/1と書きたい場合はダブルクォーテーションで囲う必要がある点です。囲わないとシンタックスエラーが出ます。(YAMLの勉強不足。。w)...

インフラ

ansible cron

2017-03-29 20:50:45

AnsibleでVagrant開発環境(CentOS7.3)を構築する

概要VagrantのCentOS7.3に開発環境をAnsibleで構築します。 環境 PHP7 Ruby Python Nginx MySQL5.7 Redis Mailcatcher 構築ベストプラクティスをある程度模倣した形のディレクトリです。 ansible/ ├── group_vars │ └── vagrant.yml ├── host ├── roles │ ├── common │ │ └── tasks │ │ ├── add_remi_repo.yml │ │ ├── install_common.yml │ │...

インフラ

ansible centos vagrant

2017-03-14 20:51:19

Ansibleでリモートのファイルに書き込みをする

概要Ansibleでリモートのファイルに書き込みをするタスク。よく使うやつ。 Playbook--- - hosts: vps become: yes user: root tasks: - name: Add text blockinfile: dest: /path/to/file insertafter: '^# Add Here' content: | # New Line Here is a new line. 所感さらっとかけますねー 参考 lineinfile - Ensure...

インフラ

ansible

2017-03-14 20:51:59

Ansibleでローカルのファイルをリモートにコピーする

概要Ansibleでローカルにあるファイル(ディレクトリの中身)をリモートにコピーするタスクです。 Playbook--- - hosts: vps become: yes user: root tasks: - name: Copy a directory copy: src: /path/to/directory/ dest: /usr/local/bin/ mode: u+x ディレクトリの中身をリモートの/usr/local/bin以下に全てコピーするタスクです。パーミッションも指定しています。 所感ドキュメント通りで特にハマるよう...

インフラ

ansible

2017-02-23 20:52:48

AWS(Elasticbeanstalk)のレイテンシーがやたら高いと思ったら・・・

AWS側の問題でした。 AWS(Elasticbeanstalk)で立ち上げたインスタンス(m4)のモニタリングをしていたら、レイテンシーがやたら高く、1分に一回くらいの頻度でタイムアウトしているユーザーがいるような状況でした。(アベレージは5秒くらいだった・・かな) アプリケーション側にネックがあるのかなぁと思ったのですが、以前テストで立ち上げたインスタンスの環境(ほぼほぼ同じ環境)よりも明らかに悪かったので、応急処置としてクローンを作成してそちらで運用することにしました。 原因究明のため、AWSに問い合わせたところ・・・・AWSから謝罪が来ました。 原因はAWS側に起因するもので、ELBノ...

インフラ

aws elastic beanstalk

2016-10-03 20:57:30

CentOS6.7で[Errno 14] PYCURL ERROR 22 - \"The requ...

CentOS6.7で[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"とかいうエラーがでたzabbixを導入しようと色々試行錯誤していたら以下のようなエラーがでてyumが使えなくなりました。 http://mirror.centos.org/centos/6/SCL/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 No...

インフラ

centos os zabbix

2017-03-31 16:01:00

LaravelにSPAを組み込む時に考えたディレクトリ構成とnginxのconfファイル

概要Laravelで作っているアプリケーションに管理画面だけSPAを実装しようとした時、Laravelのディレクトリ構成とnginxのconfファイルをちょっとだけいじった話です。初めての試みだったのでメモがてらまとめました。 Laravelのディレクトリ構成バックエンドで完結するアプリをbackend-app、フロントエンドで完結するアプリをfrontend-appとし、ディレクトリを大きく分けました。backend-appではユーザー側の画面やAPIやバックエンドの処理を担当し、フロントエンドはSPAの管理画面を担当しています。ユーザー側の画面もfrontend-appの範疇な気がしますが...

インフラ

laravel react nginx

2016-11-19 16:03:12

Laravelのデプロイツール Laravel Envoy を使ってみる

Capistrano, Fabric, Rocketeer, Deployer... など様々なデプロイツールがありますが、使いこなすのが結構大変。。。 もしあなたがLaravelユーザーならシンプルでカンタンに使えるデプロイツールがあります。 Laravel Envoy 一般的なデプロイツールと比較して、細々としたことはできなさそうですが、必要最低限のデプロイタスクは行えるかと思います。 導入ドキュメントにもありますが・・composer global require "laravel/envoy=~1.0" デプロイタスクを記述envoy.blade.phpというファイ...

インフラ

laravel deploy

2016-12-03 16:06:04

Let'sEncryptの証明書自動更新に失敗し続けていたけど何とかした話

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 でかいたスクリプトは、手動で実行する場合は更新成功するのですが、cronで実行すると何故か毎回失敗するという問題作でした。 そこでスクリプトを見直し、何とか正しく動作するように改良してみました。 筆者はnginx+apacheのサーバー構成です。基本的には--webrootオプションを使って証明書発行や更新を行っています。 注:letsencryptのオプションについては各自の環境に読み替えて下さい。 スクリプト#!/bin/sh # WebHookUrl WEBHOOKURL="****************...

インフラ

cron letsencrypt slack shellscript

2016-10-03 16:06:40

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携

letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 やることletsencryptの証明書を自動更新させるのを長らく忘れていたのでshellとcronで設定します。 やらないこと letsencryptのインストール・・・pythonエラーがちょっと面倒だった記憶が。。。 letsencryptのオブションの説明・・・色々あるので。。。 環境 さくらvps CentOS6系 letsencrypt ShellScriptshellをかきます。shellの保存場所は適宜設けてください。 #!/bin/sh service nginx stop /root/lets...

インフラ

cron letsencrypt shellscript slack

2017-07-01 16:07:30

Letsencryptの証明書自動更新スクリプト

概要letsencryptの証明書を自動更新するスクリプトの紹介です。以前から作ってはいたのですが、色々と問題があったり、サーバー環境が変わったりで完全版を残せていなかったので改めてまとめました。 環境 nginx v1.12.0 ※letsencryptのインストールやshell scriptの実行方法等には触れません。 スクリプト月に一回証明書の有効期限を問わず更新し(--force-renew)、更新結果(成功または失敗)をslack通知するスクリプトです。 slackの設定値は外部ファイルで管理しています。 #!/bin/sh # Import config . /home/bmf...

インフラ

cron letsencrypt shellscript slack

2017-06-24 16:08:40

macにanyenvをインストールする

Macにanyenvをインストールする手順です。若干ハマったところがあったのでメモ。 インストール私の環境では、/usr/local/bin/に色々置いてあるので、そこにanyenvをインストールすることにします。 cd /usr/local/bingit clone https://github.com/riywo/anyenv Pathを通すexport PATH="/usr/local/bin/anyenv/bin:$PATH" export ANYENV_ROOT=/usr/local/bin/anyenv eval "$(anyenv init -)&q...

インフラ

shellscript anyenv

2016-10-03 16:10:44

Nginxをリバースプロキシとして設定する

Apacheで運用していたさくらVPSにNginxをリバースプロキシとして設定したのでメモします。 随分前に設定したのでうろ覚えのところもあるかもしれませんがご了承ください。 環境 さくらVPS CentOS6系 Apache2.2.15 Nginx1.8.1 あると良い(いやあったほうが良い)前提知識 Apacheのバーチャルホストの仕組み及び設定方法 おおまかに仕組みをいうと、Nginxでリクエストを受け付けてApcheの指定ポートにリクエストを流すという感じです()バーチャルホストの設定はApache側で設定しておきます。Nginxが右から左へムーディ勝山するだけです。 Nginxを...

インフラ

centos nginx apache sakuravps

2017-10-03 16:11:47

php7をインストールした時にmysqlドライバーがなかった

php7をインストールした時にmysqlドライバーがなかった()php7のインストールについてはこちらを参照にしました。 CentOS6/CentOS7にPHP5.6/PHP7をyumでインストール ちなみに私の環境は・・・ さくらVPS CentOS6.7 ドライバーがないならインストールすればいいじゃないyum install yum install --enablerepo=remi,remi-php70 php-mysqlnd これで解決できたっぽいです(:3」∠) 補足:php7のインストールに関してもしかしたら足りないパッケージもあるかもしれませんが、laravelをphp...

インフラ

centos mysql php php7 sakuravps yum

2016-10-03 16:27:12

Slack+hubot+cron(node-cron)+shell+logwatchでサーバーロ...

以前、slackとhubotでShellScriptをSlackから実行しようという記事を書きました。さくらvps+hubot+Slackでslack botをつくる 今回は対話形式のコマンド実行ではなく、cronで定期的にShellScriptを実行、Slackに出力結果を報告しようという試みです。 意外とこの類いのコピペでパクれるリスペクトできる参考ソースが調べても出てこなかったので、途中で挫折仕掛けましたw API叩いてcrontabで回すという無難な方法もありましたが、せっかくつくったhubotを活躍させたかったので頑張りました。 注意: この記事を執筆している時は確かに動いていたので...

インフラ

cron centos slack sakuravps coffeescript hubot logwatch shell

2017-03-08 16:28:26

Vagrant+CentOS7.3+Ansible

概要AnsibleでVagrantの環境構築をする最初の一歩です。プロビジョニングができる環境を整えます。 環境 Vagrant1.9.1 CentOS7.3 Ansible2.2.1.0 CentOS7.3のVagrnat Boxを用意する任意のディレクトリ(例として今回はcentos7.3)にてVagrant環境を構築します。 vagrant box add https://atlas.hashicorp.com/centos/boxes/7vagrant init ここまでのディレクトリ構成 centos7.3/ ├── .vagrant.d ├── Vagrantfile ※デフォル...

インフラ

ansible centos vagrant

2017-03-29 16:29:26

VagrantでCentOS6.7の開発環境を構築する

概要最近、Boxを再構築した際に、「Vagrant開発環境のワークフローをちゃんとまとめておきたい」と思ったのでまとめてみました。レポジトリにほぼ同じワークフローメモがあります。 github - bmf-san/vagrant-development-workflow 前提以下のアプリケーションがホストマシン(Mac)にインストールされていること Vagrant VirtualBox 環境ホストマシン(Mac) macOS Sierra v10.12.2 仮想環境 CentOS6.7 構築手順 開発環境ディレクトリにて、Vagrantfileを作成する vagrant init...

インフラ

apache centos vagrant

2017-10-01 16:34:12

Vagrant上のMySQLで"MySQL Daemon failed to start

LaravelでマイグレーションやSQLファイルのインポートを繰り返したり、中断したりと無茶をやっていたらMySQLがおかしくなりました。 対応MySQLの設定ファイルにログサイズを設定したら直りました。 innodb_log_file_size=5M 所感無茶はやめよう! 参考 "Plugin 'InnoDB' registration as a STORAGE ENGINE failed" というエラーで MySQL サービスを起動できません症状 innodb_log_file_sizeを気軽に変えると死ぬよ

インフラ

mysql vagrant

2017-10-12 16:34:53

さくらVPS+CentOS7.3+Ansible

概要AnsibleでさくらVPSの初期セットアップを自動化します。 環境 さくらVPS CentOS7.3 Ansible2.2.1.0 前提知識 さくらVPSをの初期設定の流れを理解していること。 さくらVPSの初期設定 さくらVPSにCentOS7をインストールさくらVPSのコンソール画面からOSインストール>カスタムOSインストールを選択してCentOS7をインストールしておきます。インストールが開始されると、CentOS7のインストール用コンソール画面(VNCコンソールのHTML5版かJava Applet版)を開くことができるので、環境に合わせて好きな方を選びます。 C...

インフラ

ansible centos sakuravps Iaas

2018-04-01 11:00:31

Dockerとは

Dockerとは Docker社が開発している、コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム Linuxのコンテナ技術を使用 コンテナは、ホストマシンのカーネルを利用し、プロセスやユーザーなどを隔離する 軽量・高速 ミドルウェアや各種環境設定をコード化して管理できる(=Infrastructure as Code) ローカル・本番環境問わず 誰でも同じ環境が作れる 環境の再配布・再利用が容易 Dockerの正体 Linux Container(LXC) LXCにおけるコンテナのカスタマイズ(設定ファイル作成やシェルスクリプトによるファイルインストー...

インフラ

Docker 仮想環境