Skip to content

Instantly share code, notes, and snippets.

@imksoo
imksoo / install_softether_on_freebsd.md
Created May 3, 2019 07:31
FreeBSD 12にSoftEtherをインストールした

Hyper-V上の仮想マシンにFreeBSDをインストールして、SoftEtherマシンにしたメモ。

Hyper-Vの仮想マシン作成

FreeBSD 11あたりからGeneration 2な仮想マシンでもFreeBSDをインストール可能になっている。

注意点:

  • SoftEtherでリモートアクセス機能(L2TPやSSTP、OpenVPNなどのクライアントからの接続待受け)をするためには、仮想NICを2個以上つなげておくこと。
  • セキュアブートが有効なままだと、FreeBSDのISOイメージで起動しないので、無効化しておく。

Pythonのformatは便利

import json

json_text = '''{
    "version": "0",
    "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
    "detail-type": "EC2 Instance State-change Notification",
    "source": "aws.ec2",
@imksoo
imksoo / mastodon_toot_yahoo_traininfo.md
Created May 4, 2017 01:21
MastodonにYahoo!運行情報をつぶやくだけのbot

MastodonにYahoo!運行情報をつぶやくだけのbot

Ruby Nokogiriの良い練習台になったような気がします。

#!/usr/bin/env ruby

require 'time'
require 'net/http'
require 'uri'
@imksoo
imksoo / itamae_edit_file.md
Created April 5, 2017 07:24
Itamaeならではの設定ファイルの修正方法

Itamaeならではの設定ファイルの修正方法

  • Itamaeのfile resourceでは block (Ruby文) を書ける
  • block の中では対象ファイルの内容を受け取って書き換えることが出来る
service 'sshd'

file '/etc/ssh/sshd_config' do
 action :edit
@imksoo
imksoo / terraform_backend_s3.md
Created April 5, 2017 07:08
AWS環境をTerraformで作るときはS3 Backendを活用しましょう

AWS環境をTerraformで作るときはS3 Backendを活用しましょう

Terraformはtfstateファイルで構成情報を管理しているが、 単純にtfstateファイルをgit等で共有すると他の人が構成変更 (terrafrom apply)している最中に別に作業を実行したり出来る。

そういうときに良く競合してあるべきリソースが削除されたりするが Terraform Backend S3 + DynamoDB Lockを利用することで、自動的に ロックしながら最新状態を共有することが可能となる。

@imksoo
imksoo / terraform_iam_data.md
Created April 5, 2017 06:46
TerraformでIAM Roleを書くときはdataを活用しましょう

TerraformでIAM Roleを書くときはdataを活用しましょう

Terraformのヒアドキュメントは改行コードを含めてそのまま保持します。 ということは、特にGit for Windowsを利用している環境では改行コードがLinux/Macとは異なるために不要な差分として検知されることになります。

アンチパターン

ヒアドキュメントでJSONをそのまま書いてしまう
× TerrafromのHCLの中に、いきなりJSONが出てくるのでかっこ悪い
× 改行コードの違いがそのまま反映されてしまう

@imksoo
imksoo / itamae_environment.md
Created April 5, 2017 06:27
Itamaeで擬似的にEnvironmentを再現する

Itamaeで擬似的にEnvironmentを設ける時の書き方

Itamae実行時にノードアトリビュートを与えて実行する(itamae -y node.yaml recipe.rb or itamae -j node.json recipe.rb)が、 そのノードアトリビュート内部で擬似的にEnvironment変数を設定しておく。

# nodes/hogehoge-web-server.yaml
environment: development
cookbooks:
    - dnsmasq