読者です 読者をやめる 読者になる 読者になる

set setting reset

インフラ関連の小ネタと備忘録

vim のヤンクでクリップボードにコピーしたかった話、あるいは vim 8 へのアップグレード (mac)

vim

環境 OS vim version OSX 10.11.6 7.3 目的 mac の vim でヤンクしてクリップボードにいれたかった。 記事にしようと思ったきっかけ よくある設定を .vimrc に書いてみましたが、有効にならず。 set clipboard=unnamed,autoselect $ vim --version | grep cl…

boto3 で指定された日付以前の snapshot を削除する

という python script を晒してみます。 #!/usr/bin/env python # -*- coding: utf-8 -*- """ 指定された日付以前の snapshot を削除します ただし ami に紐付いている snapshot は削除しません example: $ python delete_expired_snapshots.py -p profile_n…

argparse をつかってコマンドライン引数をよしなにする

よくつかうのでメモとして残してみます。 argparse とは python の組み込みライブラリで、引数をよしなにしてくれるいい人です。 python 2.7 から追加されました。 15.4. argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 2.7.x…

CentOS7 で再起動後に vm.swappiness の設定が元に戻ってしまう

環境 AWS EC2 の CentOS 公式 AMI です。 CentOS 7 (x86_64) - with Updates HVM on AWS Marketplace 事象 デフォルトは vm.swappiness = 30 sysctl -w vm.swappiness=任意の値 すると任意の値に変更可能 sysctl -p するも reboot 後に元に戻ってしまう 原因…

python でディレクトリ配下の最新のファイル名(フルパス)を取得する

前提 最新かどうかはファイルの最終変更日時 = mtime で判定します。 準備 こんな感じでファイルを作成します $ for ((i=0;i>10;i++)); do touch $i.txt; sleep 5; done 最終変更日は以下の様になりました。 9.txt の最終変更日時が最も新しいものになってい…

vagrant で windows server 2012R2 を動かす

vagrant-winrm プラグインのインストール windows server の vagrant box を make する packer のダウンロード もう一回 make VIX SDK のインストール 再々 make vmware workstation player のインストール 再再再 make VMware tools for windows 再再再再 m…

de:code 2016 5/25 メモ

de:code 2016 5/24 メモ - set setting reset の続きです。 powershell DSC コード書く mof ファイルができる これを送って実行させる start-dscconfiguration LCM local configuration manager push は windows から実行 pull server http だけでなく smb …

de:code 2016 5/24 メモ

会社のお金で de:code 2016 に参加させてもらいました。 とにかく Azure と DevOps 推しでした。 以下、なぐりがきメモです。 Active Directory 最新動向 Azure AD Azure AD 13 億の認証 transaction / day ms が内部でも利用している (yammerも) マルチデバ…

boto3 で S3 オブジェクトのコピー

boto3 で S3 の操作メモ バケットに接続 import boto3 s3 = boto3.resource('s3') bucket_name = "my-bucket" bucket = s3.Bucket(bucket_name) prefix の文字列で bucket 内のオブジェクトをフィルタ prefix = 'myfolder/original.txt' bucket.objects.filt…

powershell の連想配列を JSON に変換する

ハッシュを作成します。 @{"Key" = "Value"; } の形式です。 $Members = @{ "id" = 1; "Name" = "hoge"; } PSObject を生成します $MessageObject = New-Object -TypeName PSObject PSObject にメンバーを追加します foreach ($key in $Members.Keys) { Add-…

はじめての AWS Lambda python で boto3 から ec2 を起動する

はじめての AWS Lambda で boto3 から ec2 を起動する いまさら感ありありですが表題のことを Management Console からやってみます。 初期画面 bluprint Get Started で進むとたくさんのサンプルから選ぶことができますが、今回は Skip します Configure fu…

CentOS7 on vagrant に docker をインストールして nginx で hello world するまで

CentOS7 (vagrant) に docker をインストールして nginx で hello world するまでの記録です。 CentOS7 が vagrant up されていることが前提です。 docker インストール 公式 にあったワンライナーでインストール後、起動します。 なお、このワンライナーは …

apache で X-Forwarded-For をログに記録する

記事としてよくありますが、ちょっとハマったので記録として。 <VirtualHost *:80> ServerName hoge.com DocumentRoot "/var/www/html" LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_x CustomLog "/var/log/httpd/acc</virtualhost>…

ssh で rake spec する時に sudo password が渡せない

追記 serverspec の実行時や、ローカルPCの環境変数に sudo_password を設定すればデフォルトのままで問題ありませんでした。 Sudo password support If you log into servers as non-root user, Serverspec add "sudo" in front of the command. You can sp…

apache で elb からのヘルチェックをログに記録しない

apache のバージョン # httpd -V Server version: Apache/2.2.15 (Unix) Server built: Aug 13 2013 17:29:28 Server's Module Magic Number: 20051115:25 Server loaded: APR 1.3.9, APR-Util 1.3.9 Compiled using: APR 1.3.9, APR-Util 1.3.9 Architectur…

PostgreSQL で UPDATE REPLACE する時にちょっと怖かった

こんな感じのテーブルがあるとします。 select count(*) from table ; count ------ 1000 a が含まれているレコードが 10 あるとします。 select count(*) from table where column like '%a%'; count ------ 10 replace してみます。 BEGIN; UPDATE table S…

Serverspec のセットアップ (rbenv / bundler)

Serverspec を使うために ruby の環境をセットアップします。 環境は CentOS 7 です。 O'REILLY を参考に進めていきます。 O'Reilly Japan - Serverspec rbenv のインストール rbenv は ruby のバージョン切替ができるツールです。 以下の手順でセットアップ…

bash でよく使うやつ

桁指定で表示する -bash ~$ i=1 -bash ~$ printf "%02d" $i 01-bash ~$ 改行させるなら -bash ~$ printf "%02d\n" $i 01 整数の加算 expr とさらばできる -bash ~$ i=0 -bash ~$ ((i++)) -bash ~$ echo $i 1 C 言語っぽい for 文がかける $ for (( i=0; i<3;…

PostgreSQL を暖気する

postgresql は linux においてファイルキャッシュを信用するので、 データファイルを cat してあげると自然とデータがメモリに乗ります。 メモリ大容量時代が到来していますので、このようなニーズもあるのかなと。 postgresql の再起動後などに以下のような…

CentOS7 に pip と awscli をインストール

vagrant 上の CentOS7 です。 # cat /etc/centos-release CentOS Linux release 7.1.1503 (Core) 普通に yum だとインストールできませんでした。 結論を先に記載すると 4 コマンド実行で pip と awscli のインストールができました。 # yum install epel-re…

powershell で X-ASPNET-VERSION ヘッダを削除する

サーバ全体で無効化する方法がないか調べてみたところ msdn ブログがヒットしました。 MSDN Blogs 方法は 2 種類あって、web.config に追加する方法と、サーバレベルでサーバ変数を利用した rewrite を行う方法があるようです。 ただし、後者は ヘッダそのも…

ubuntu に vagrant 環境をつくる

余った PC に ubuntu-mate をインストールしたのでついでに vagrant 環境を作ってみました。 環境 PC OS thinkpad X1 ubuntu 15.04 VT-X の有効化 BIOS から VT-X を有効化します。 thinkpad X1 の BIOS 起動手順はこちら Security -> Virtualization -> Int…

postgresql で trigger とその trigger が動作するテーブルの一覧を取得する

SELECT event_object_schema, event_object_table, trigger_schema, trigger_name FROM information_schema.triggers 結果 event_object_schema | event_object_table | trigger_schema | trigger_name ---------------------+-----------------------------…

vpc endpoint から s3 へのアクセス制御 (bucket policy)

aws

公式ドキュメント vpc endpoint を作成時にできる vpce-id を使って許可、拒否ができる 他のアカウント / vpc に対しても制御可能 記載された vpce と IPアドレスのみ許可する設定例です。 { "Version": "2012-10-17", "Id": "vpce-restrict", "Statement": …

apache で URL を case insensitive にする

↓ の状態で # ls /var/www/html/healthcheck.html /var/www/html/healthcheck.html ↓ のように 404 となったので [Fri Oct 16 13:59:53 2015] [error] [client ***.***.***.***] File does not exist: /var/www/html/HealthCheck.html 産業追記して reload L…

サポートケースを作成するための iam ポリシー

AWS

どうやって制御するんだろうと調べていたら iam policy の中にありました。 IAM > Policies > AWSSupportAccess { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "support:*" ], "Resource": "*" } ] } というだけの記事でした…

redis-py で expire が付与されていない key を削除する

メモリが逼迫してきた redis で、本来存在しないはずの expire が付与されていない key を削除することになったので記録として。 key は session id として使われています。 環境 作業環境 osx 10.10.4 python 2.7.6 サーバ環境 centos6.4 redis 2.6.14 前提…

ELB に登録されているインスタンスを解除 & 指定したインスタンスを ELB に登録

ELB に登録されているインスタンスを全て解除する #!/bin/bash aws="/usr/bin/aws --region ap-northeast-1" elb_names=("elb-1" "elb-2") deregister_instances_from_elb() { for elb_name in ${elb_names[@]} do # get registerd instance ids per elb der…

administrator 以外のユーザから Web Deploy 3.5 でデプロイする

環境 OS IIS Version Web Deploy Version Windows Server 2012R2 IIS 8.5 Web Deploy 3.5 結論 IIS マネージャーユーザに登録することで可能になりました。ただしグループは指定できません。 IIS マネージャーのユーザ追加なので、OS的には把握されず、ここ…

EC2(windows server 2012R2)でVirtual Box VMを動かす

VMWare Player on Windows 7 で動かしていた vm (CentOS5) を Virtual Box がサポートしている形式に変換して EC2 上で動かしてみました。 virtual box への移行 イメージの変換 Windows 7 上の vmx ファイルを ovf ファイルに変換します。 変換はコマンドラ…

terraform をバージョンアップしてみる(0.4.2 -> 0.5.3)

以前の記事で手元の mac に brew でインストールした terraform ですが、 brew upgrade でなかなか降ってこないので手動でバージョンアップしてみます。 手動バージョンアップと言ってもシンボリックリンクの書き換えしただけなので、メモとして残します。 …

chef-server からの bootstrap で ERROR: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

ぐぐると多数ヒットしますが、備忘のため。 chef-server から bootstrap すると表題のエラーが出ました。 bootstrap 先のサーバから knife client list とか色々やっても client として登録されないので全部ダメ。 ERROR: Your private key could not be loa…

powershell で DNS 条件付きフォワーダを設定する

環境は以下の通りです。 windows server 2012R2 ADDS + DNS がインストール済みのドメインコントローラ SE'S BOOK: dnscmdコマンドでDNS条件付きフォワーダーを作成、設定 上記サイトによると dnscmd というのを使うと簡単とのことなので試してみます。 PS C…

IIS マネージャーのアクセス許可を Active Directory のグループで制御する

概要 IIS による web サイトへのアクセス許可ではなく、IIS マネージャーの操作へのアクセス許可設定を Active Directory のグループで実施します。 Active Directory ユーザはデフォルトで IIS マネージャーの起動はできますが、設定をするためには adminis…

ドメイン参加したwindows serverでchef-clientが動かない

状況 ドメイン参加前に knife bootstrap でプロビジョニング済みの windows server を、 新規構築した Active Directory にドメイン参加させた後に chef-client がエラーになる。 $ bundle exec knife winrm -m ${ip_addr} -x ${user_name} "c:\opscode\chef…

terraform で既存のVPCを操作する

terraform の全能感いいですね。 terraform 0.4.2 で既存の VPC に対して下記のことを行ったのでメモです。 なお、インストールは brew install terraform で実施しました。 $ terraform usage: terraform [--version] [--help] <command> [<args>] Available commands are:</args></command>…

S3 フォルダ内の最新のファイル名を取得する

aws s3api list-objects --bucket ${BUCKET} --prefix ${PREFIX} \ --query 'sort_by(Contents[],&LastModified)|[-1]' --query オプションいいですね。

postgresql の過去の rpm

過去のバージョンの postgresql の rpm を探すことになったのですが、本家にはないので google したら mirror があったのでメモ。 Index of /mirror/CentOS-Third-Party/pgrpm/pgrpm-93/redhat

pgpool への connection を munin でグラフ化

bash で munin がんばるシリーズです。 pgrep で取得した情報からごにょごにょやっています。 Used な Connection が増えまくったことで新規コネクションが pgpool によって待たされることがないようにリソース監視しましょうというのが目的です。 グラフ化…

Reserved Instances が expire される前に通知する

そういう機能がある気もしますが、bash で書けたので晒してみます。 cron などで日次で動かすことを想定しています。 この内容だと、30/15/7日前に通知メールを送信するようになっています。 #!/bin/bash # Reserved Instance expire checker from_address="…

AWSCLI を使って ELB のトラフィックを munin でグラフ化

表題の通りの munin plugin です。 elb_traffic.sh #!/bin/bash AWS="/usr/bin/aws --region ap-northeast-1" ELB_NAME=`basename $0 | cut -d _ -f 1` # 取得したいメトリクス METRICS=("RequestCount" "HTTPCode_ELB_4XX" "HTTPCode_ELB_5XX" "HTTPCode_Ba…

特定のディレクトリ配下のファイルキャッシュを削除する

linux-ftools - Linux command line tools for fallocate, fincore, fadvise, etc - Google Project Hosting ページキャッシュの詳細確認と削除方法tsuchinoko.dmmlabs.com linux-ftools がとても便利なので、表題のことを実現するスクリプトを書きました。 …

SES で利用するアクセスキー

smtp ユーザ用キーを使用して api 経由のメール送信ができないことを知らず大ハマリしました。 SES を利用してメール送信する方法は2種類あります。 smtp 認証経由でメール送信 AWS SDK を使って api 経由でメール送信 SES のコンソールで生成した smtp 用 I…

munin のグラフがズームできない

新規で構築した際に munin の dynazoom が見えない。 ぐぐると SELinux が犯人という記事をよく見かけたものの、無効化していたので、それが問題ではない模様。 /var/log/munin 配下のログを確認してみたところ、0 byte で更新されていないログがある。 ll /…

aws cli で Name タグから InstanceId を取得

よく使うのでメモ INSTANCE_NAME="Name タグの Value" aws ec2 describe-instances --filters Name=tag-value,Values=${INSTANCE_NAME} \ --query 'Reservations[].Instances[].InstanceId' \ --output text --filters 死ぬんじゃね?疑惑があるようですが、…

cat の出力をシンタックスハイライトさせる

という方法がないかなとぐぐってみたところ stackoverflow 先生が教えてくれました。 Syntax highlighting/colorizing cat unix - Syntax highlighting/colorizing cat - Stack Overflow I'd recommend pygmentize from the python package python-pygments.…

JSON から AWS CLI でインスタンス起動

自分使いのスクリプト バージョン $ aws --version aws-cli/1.7.3 Python/2.7.6 Darwin/14.0.0 スクリプト ホスト名を引数にして実行。 --cli-input-json オプションを使う。 #!/bin/sh role=$1 host=$2 cd `(dirname $0)` AWS="/usr/local/bin/aws --region…

Error Syncing Cookbooks:

環境 OS S/C version cenots 6.5 chef-server 11.16.0 windows server 2012 R2 chef-client 11.16.0 エラー [chef-server]$ bundle exec knife winrm -m 10.0.0.10 -x administartor -P password "c:¥opscode¥chef¥bin¥chef-client" =======================…

Error: Package: postgresql93-devel-9.3.5-1PGDG.rhel6.x86_64 (pgdg93) Requires: /usr/bin/pkg-config

Centos6.4 で postgresql を yum でインストールしようとしたら依存関係でエラー。 # yum install postgresql-server postgresql-devel --enablerepo=pgdg93 --disablerepo=base Loaded plugins: fastestmirror, presto Loading mirror speeds from cached h…

S3 API 一覧メモ

aws

なんとなく調べたのでメモ。 発端はS3バケット間コピーをすることになったので、そのための IAM Role を作ろうとしたのがきっかけでした。 AbortMultipartUpload CreateBucket DeleteBucket DeleteBucketPolicy DeleteBucketWebsite DeleteObject DeleteObje…