ログってなんぼ

日々のメモです

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…

Ansible:pipeliningを使ってplaybookの実行を高速化

http://docs.ansible.com/ansible/intro_configuration.html#pipelining playbookが大きくなってきたら更に恩恵ありそうな予感がする結果となったため作業内容をメモ。 普通に実行した時の実測値がこちら PLAY RECAP **************************************…

ansibleでcronをセットする

cron - Manage cron.d and crontab entries. — Ansible Documentation ここを見ながら。 タスクを追加 実行するスクリプトとcronモジュール - name: ダンプスクリプトの配置 become: True template: src=roles/db_slave/templates/dump_to_rds.sh.j2 dest=/u…

ansibleでディレクトリの存在チェックをする

ディレクトリを作成するタスクに、ディレクトリの存在チェックを導入するメモ 失敗例 普通にディレクトリを作成 - name: ディレクトリを作る become: True file: path={{ file_mountpoint }} state=directory owner=root group=root mode=0755 2回目以降の実…

ansible : エラーを無視して先へ進むオプション

ansible助かってます^q^ 本番環境での使いドコロがちょっと今すぐ思いつかないですが、エラーで止まってしまった場合、そこで処理を中断せずに無視して先の処理へ進むようにすることができるのを知りました。 Error Handling In Playbooks — Ansible Docu…

Ansible:roleを用いてrbenvとrubyをインストールする

appロールを作り、rbenvとrubyをインストールして使用できるようにするメモ hosts [app] app01 ansible_host=xxx.xxx.xxx.xxx app.yml --- - hosts: app roles: - app roles/app/tasks/main.yml --- - name: 開発ツールをインストール become: True yum: nam…

ansible : NFSクライアントを構成する

nfs関連のミドルウェアをインストールして、任意のNFSをマウントするまで CentOS6.5。 roles/app/defaults/main.yml --- file_mountpoint: /path_to_mountpoint file_server: xxx.xxx.xxx.xxx roles/app/tasks/main.yml - name: NFSクライアントをインストー…

ansible : 設定ファイルの優先順位

ansible.cfgの置き場所について ansibleの設定ファイルであるansible.cfgの置き場所には優先順位がある 環境変数 ANSIBLE_CONFIG にて指定されたパス カレントディレクトリの ansible.cfg (./ansible.cfg) ユーザーHOMEの .ansible.cfg (~/.ansible.cfg) /et…

ansible:notifyとhandlerを使ってサービスを再起動する

またメモ。 - hosts: all become: True tasks: - name: stop root login via ssh lineinfile: dest: /etc/ssh/sshd_config state: present regexp: "^PermitRootLogin without-password" line: "PermitRootLogin no" backup: yes backrefs: yes validate: "s…

ansible:sudo可能なユーザーを作成し、authorized_keyを更新する

単なる作業メモ --- - hosts: all become: True tasks: - name: add a new user user: name=hogeuser state=present - name: add a sudo user lineinfile: "dest=/etc/sudoers backup=yes state=present regexp='^hogeuser' line='hogeuser ALL=(ALL) NOPASS…

ansibleを試してみたメモ

CentOS6のサーバーに対して、ローカルのmacからansibleを使って見たメモ macにansibleをインストールする Homebrew なら簡単にインストール可能 $ brew install ansible インベントリを作る デフォルトでは hosts というファイルを探す。ansible.cfgで上書き…

オライリー・ジャパンから日本語版Ansible本、4/16発売

オライリー・ジャパンからAnsible本の日本語訳版が発売とな。 O'Reilly Japan - 初めてのAnsible www.oreilly.co.jp 本書はサーバーの構成管理ツールAnsibleについての総合的な入門書です。設定管理のスクリプトであるPlaybookの基礎から、オープンソースの…

MySQLを再起動せずにslow queryログを取る

mysql> set global slow_query_log_file = '/path/to/slow_query.log'; mysql> set global long_query_time = 10; mysql> set global slow_query_log = 1; long_query_time = 0 ですべてのクエリが記録されます 確認 mysqlクライアントに接続しなおして確認 …

Vagrant:httpdを使用中、ローカルで更新した静的ファイルが更新されない

vagrantでローカルマシンにLinux+Apacheの環境を作って開発している方も多いと思います。 開発環境でcssを編集してもブラウザでcssが更新されない時には下記の設定をapacheに入れてやるとリロードごとにcssがちゃんと更新されるようになります。 httpd.conf …

Mysqlで特定のDBのスキーマだけダンプする

-d オプション mysqldump -uUSERNAME -p -d DBNAME よく忘れる

homebrewでMySQLをインストールしたメモ

普段の開発はVagrantでCentOSのVMを立ち上げてやってますが、試しにMacのローカルにMySQL入れてみました。 $ brew install mysql 自動起動設定 $ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents /Users/okisanjp/Library/LaunchAgents/homebr…

【まだまだ未完成】CentOS+Apache+Mysqlを自動起動するコンテナのDockerfileを書いてみた

とりあえずapacheの起動とブラウザからの確認はできたものの、まだまだいい加減なのでこれから育てていくことになりますが、せっかく作業したのでメモ。 ちなみに okisanjp.hatenablog.jp こちらの続きです。VagrantとCoreOSのセットアップについては上記参…

CentOS : 直前に実行したyum updateを全部取り消す

yum historyでトランザクションIDがわかるのでそれをundoサブコマンドでundoする。 historyを取る # yum history 読み込んだプラグイン:priorities, update-motd, upgrade-helper ID | ログイン ユーザー | 日時 | 操作 | 変更 ----------------------------…

Zabbix-agentが使うポートをCentOS7のFirewalldで開けるメモ

# firewall-cmd --get-default-zone public public zoneに10050と10051を追加したいと思う。 # firewall-cmd --add-port=10050/tcp success # firewall-cmd --add-port=10051/tcp success # firewall-cmd --list-port 10050/tcp 10051/tcp サービスとの疎通…

CentOS7:nginxをインストールしてFirewalldでport80を開ける

# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.yfYsOb: ヘッダ…

Kibana3+Elasticsearch:リバースプロキシとAliasを使ってDigest認証をかけ若干の安心感を得る

kibana便利ですね〜。 Elasticsearchにも可能性を感じますね〜。という昨今。 スタートアップのチームなんかでEC2のみでシステムを構築している時問題になるのが、監視系のツールにブラウザからアクセスする必要がある時、EIPに対してのアクセスとなるため不…