ログってなんぼ

エンジニアのメモです

infra

Elastic Beanstalkで起動する環境にcronを仕込むメモ

一例として「Railsプロジェクト内のbin/hoge.rbを5分おきに動作させる」というcronjobを仕込んでみます config/eb_crontabs たとえば、config/eb_crontabsという名前でcronを用意しておくとして SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=…

Dockerで起動したMySQLのデータを永続化する

okisanjp.hatenablog.jp 上の記事で作った環境で、MySQLのデータを永続化してみることにしました docs.docker.com ホストマシンのディレクトリをマウントするケースと、Volume用のコンテナを作るケースがあるようですが、今回はData Volumes Containerを作る…

MacのDockerでRails5+MySQL5.7開発環境を作ったメモ

任意のディレクトリを作ってその中で作業する前提です ruby2.3.0 / rails 5.0.0 / mysql5.7でやってみます Dockerfile 何はともあれDockerfileが必要です。下記のような内容で作成します。 $ cat > Dockerfile FROM ruby:2.3.0 RUN apt-get update -qq && ap…

testコマンドのオプションを使い分けてファイルの状態をチェックするメモ

ファイルの評価に関して自分的に頻度の高いオプションをまとめてみました option 説明 -e ファイルが存在すればtrue -f ファイルが存在し、それが通常のファイルであればtrue -r ファイルが存在し、読み取り可能であればtrue -w ファイルが存在し、書き込み…

AWS Elastic Beanstalkでnginxの設定を上書きする

64bit Amazon Linux 2016.03 v2.1.6 running Ruby 2.1 (Puma) での一例 あくまでも一例です。ベストでスマートな方法が他にあるかも。 nginx設定の上書き Beabstalkが立ち上げたEC2へログインすると $ ll /etc/nginx/conf.d/webapp_healthd.conf lrwxrwxrwx …

MySQL5.7:rootの初期パスワードをリセットする

ローカルの開発環境に作ったMySQLでちょろっとハマったのでメモ MySQL5.7は初回起動時にroot@localhostに対してランダムな初期パスワードをセットします。 ログをよく見ると [Note] A temporary password is generated for root@localhost: 初期パスワード) …

Sierra/El Capitanでgem install時に「'openssl/ssl.h' file not found」エラーとなる

Sierra/El Capitanでgem install eventmachineを実行時に下記エラー compiling binder.cpp In file included from binder.cpp:20: ./project.h:103:10: fatal error: 'openssl/ssl.h' file not found #include <openssl/ssl.h> ^ 1 error generated. github.com ということ</openssl/ssl.h>…

awscliでroute53の内容を確認する

まずhosted zoneのIDを調べる $ aws route53 list-hosted-zones 次に、hosted zone idを用いて内容を確認 $ aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/ID_FOR_HOSTED_ZONE

route53でエラー:Before you can delete a hosted zone, you must first delete all resource record sets except the NS and SOA resource record sets for the zone apex.

route53でhosted zoneを削除しようとしたときに以下のようなエラーが出ることがある Before you can delete a hosted zone, you must first delete all resource record sets except the NS and SOA resource record sets for the zone apex. docs.aws.amazo…

Rails4.2:Vagrant上の仮想マシンで起動したRailsにホストのブラウザからアクセス出来ない

vagrantで起動した仮想マシンでrails sを実行し、ホストマシンのブラウザからアクセスしようとしてもエラーとなり接続できない場合のメモ。 Rails4.2以上の環境用メモ Vagrantfile config.vm.network "private_network", ip: "192.168.33.10" host onlyネッ…

Vuls:サウナおじさんがVuls開発秘話とOSSのバズらせ方を面白い髪型で語る記事

thinkit.co.jp バルスというツールをご存知だろうか? 日本ではとあるアニメの崩壊の呪文として扱われることの多いこのフレーズがいま、サーバー管理者のシステム崩壊を防ぐためのツールとして注目されている。OSSの脆弱性検知ツールであるVuls(バルス)に…

Homebrewで入れたMysqlでlibmysqlclient「Library not loaded」対応メモ

rbenvでrubyを、homebrewでmysqlをインストールした開発環境にて。 rake db:setupでエラー $ rake db:setup rake aborted! LoadError: dlopen(/Users/okisanjp/.rbenv/versions/2.1.8/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-15/2.1.0-static/mysql2-…

Ansible:任意のタスクから実行したり対話式でtaskを実行したり

Start and Step — Ansible Documentation $ ansible-playbook hoge.yml --start-at='crond' --step --start-at=を使うと任意のnameから処理を実行できます。 --stepでステップ実行。 実行例 $ ansible-playbook hoge.yml --start-at='crond' --step PLAY [ho…

Ansible:特定のホストに対してyum updateを行う

ansible 2.1.0.0にて。 特定のホスト、またはホストグループに対してyum -y updateを実行してみるメモ。 log01にのみsudo yum -y updateを実行したい場合を例として hostsの例 $ cat hosts [app] app01 ansible_host=xxx.xxx.xxx.xxx [log] log01 ansible_ho…

Mac:DNSキャッシュをクリアする

いつもどおりサーバーにログインしようとすると・・・ $ ssh hoge@app01 ssh: connect to host app01 port 22: Operation timed out ん?サーバー障害? 別のサーバーにはsshログインできたので、そこからプライベートネットワーク経由でsshしてみると入れる…

ansible:inventory_hostnameを使って条件つき実行

productionサーバーとstagingサーバーで同じroleを使っているが、td-agentだけはstagingに必要ない場合 Variables — Ansible Documentation 一例ですがinventory_hostnameで現在playbook実行中のホスト名(linuxのhostnameじゃないよ)が取得可能 - name: td…

CVE情報からサーバーの脆弱性をスキャンできるツールVuls(バルス)

サーバー運営につきもののセキュリティアップデートの管理をどんな感じでやろうか考えていたところ、良さそうなツールに出会いましたので使って見たメモを残しときます vuls公式 github.com 作者の方のTwitter twitter.com 日本人の方です。 めちゃめちゃわ…

elasticsearchのヘルスチェックをとりあえず簡単に行う

とりあえず簡単にできるものをメモ ヘルスチェック statusを見て、チェックスクリプトなどでゴニョゴニョするなりなんなり。 $ curl -s -XGET http://localhost:9200/_cluster/health?pretty { "cluster_name" : "hoge", "status" : "yellow", "timed_out" :…

「zabbixでmysqlを監視する」をansibleで。

zabbix2.2使用中につき、zabbix-agentをインストールすると勝手に出来てる/etc/zabbix/zabbix_agentd.d/userparameter_mysql.confを活用させてもらおうってことでメモ。 - name: zabbix用mysqlユーザーの作成 shell: bash -lc "mysql -uUSERNAME DBNAME -e'g…

/var/log/secureに変更したhostnameが反映されない場合のメモ

ホスト名を変更したにもかかわらず、/var/log/secureなどのsyslog系に記録されるhostnameが反映されない場合 ログローテートを待ってもいいですが $ sudo service rsyslog restart システムロガーを停止中: [ OK ] システムロガーを起動中: [ OK ] 現場から…

CentOS6にdenyhostsを入れてSSH総当たり攻撃対策

EPELリポジトリからインストール可能 $ sudo yum install denyhosts EPELを登録していない人はググれば親切な記事がいっぱい出てきます(´・ω・`) 設定など デフォルトでもまあまあ使える内容ですが # 拒否リストから自動解除されるまでの時間 # 'm' = minute…

Zabbixの障害通知メールのタイトルにhostnameを入れる

1 サポートされているマクロ(場所別) [Zabbix Documentation 2.2] hostnameが"hostname01"だった場合 例えば、アクションのタイトルに [{HOST.NAME1}] 異常: {TRIGGER.NAME} としておくと [hostname01] 異常: Zabbix discoverer processes more than 75% b…

zabbixのアラートをSlackで受け取る

通知スクリプト github.com zabbix_server.conf ### Option: AlertScriptsPath # Full path to location of custom alert scripts. # Default depends on compilation options. # # Mandatory: no # Default: # AlertScriptsPath=${datadir}/zabbix/alertscr…

elasticsearch:プラグインインストール時「java.security.ProviderException: java.security.KeyException」発生時のメモ

elasticsearchのプラグインをインストールしようとして $ /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head --verbose -> Installing mobz/elasticsearch-head... Trying https://github.com/mobz/elasticsearch-head/archive/master.z…

MySQL5.7入れるなら読んどくべきURL3つ

最近は、中国向けアプリのAPIサーバー群を作ったりしてます 最初MySQL5.1を使っていたんだけどutf8mb4に対応する必要があって5.5以上が必須となり、それならせっかくなので5.7入れてみようって感じで導入。 入れる前に色々調べたほうがいいと思うんですけど…

Ansible : templateに変数を使って環境の違い(production/staging)に対応する

同一のroleをproductionとstagingで共有するときのメモ vars: で固有の変数を定義 virtualhostのServerNameとPassengerのENVをそれぞれ設定してみた。 production.yml --- - hosts: app vars: app_env: production servername_app: example.com roles: - app…

Rails4+Mysqlでutf8mb4対応する

Mysql2::Error: Incorrect string valueうんちゃらなんちゃら 絵文字や一部の中国語漢字など4バイトのutf8キャラクターを利用できるようにしたメモ。 現行環境 mysql5.1 utf8 CentOS6.4 mysql5.5以上を導入 mysql5.1はutf8mb4に対応していないため、5.5以上…

Ansible:ansible.cfgのremote_userをhosts内で上書きする

一つだけvagrantでログインしたいけど、他のサーバーはhogeuserでsshしたい時など ansible.cfg [defaults] hostfile = ./hosts remote_user = hogeuser hosts ansible_userで上書き可能 [basicimage] basic ansible_host=xxx.xxx.xxx.xxx [test] app101 ansi…

Ansible:本番環境に流すplaybookをvagrantのVMでテストする

本番でplaybookを流すユーザー名がvagrantじゃない 本番サーバーの種類(グループ)ごとにVM作りたくない 複数のroleについて同時進行でplaybookを書くことはほとんど無いので、一つのVMを使いまわしたい 今の自分のやり方 使うVMは一つだけ upとdestroyで作…

Ansible:main.yml内で別のtaskをincludeする

taskが長くなってきたのでincludeを使ってみたメモ Playbook Roles and Include Statements — Ansible Documentation ファイル構成 main.ymlの他にzabbix.ymlを追加 include --- - include: tasks/zabbix.yml 簡単でした 初めてのAnsible作者: Lorin Hochste…