mysqlでlocalhost上の任意のユーザーにUSAGEを許可する。

$ mysql -uroot
[snip]
mysql> GRANT USAGE ON *.* TO ''@'localhost';

Ubuntu 13.10, 14.04でfirefox用のflash player pluginをインストールする。

# apt-get install flashplugin-installer

autoconfでHeaderやLibraryをテストするコンパイラをC++にする。

すべてのライブラリやヘッダをC++コンパライラでチェックする場合、configure.acにAC_LANG()を記述すればよい。
AC_LANG([C++])
ある区間のチェックのみC++コンパイラを使うなら、AC_LANG_PUSH()/POP()が使える。
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([iostream])
AC_LANG_POP([C++])

Ubuntu 16.04や14.04で静的にDNSのアドレスを設定する。

Ubuntu 16.04 (14.04以降)では、resolv.confが動的に設定されるので、直接、編集するなとその中に書かれている。
$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
では、どうすればいいかというと、次のように設定ファイルbaseにnameserverを記述して、再起動すればよい。
$ cat /etc/resolvconf/resolv.conf.d/base 
nameserver 8.8.8.8
参考:
[NEW] Ubuntu 18.04 LTSでのDNSの設定方法
Ubuntu 14.04でDNSサーバやドメインを設定する。

Debian系Linux OS (Ubuntu含む)で静的にIPアドレスを設定する。

/etc/network/interfacesに以下のように記述する。
auto eth0
iface eth0 inet static
  address 192.168.71.10
  netmask 255.255.255.0
  gateway 192.168.71.1

Debian7でDockerを使う

インストールは、このサイトを参照すればOK。
Dockerの基本操作については、 このページが役立つ。

OpenVPNのクライアント用configファイル例

ブリッジ(Tap)接続の例。
# client側ではclientと記述
client

# L3接続ならtun, L2接続ならtap
dev tap

# 通常はudpでいい。tcp over tcpは再送等の問題あり
proto udp

# サーバ名 or IPとport番号
remote server_name 1194

# サーバの名前解決ができないときも、無限にリトライする
# たぶん、デフォルトはこの設定(無限)のはず。
# 上記remote項目で、複数のサーバーを指定している場合、この値が有限時間なら、その時間経過後に次のサーバへの接続を試みる
resolv-retry infinite

# OpenVPN 2.3.2では不要。エラーになる
no bind

# なくても、自動でネゴシエーションすると思うが、サーバー側と同じのを記載するとログにWARNINGがでなくなる
cipher AES-256-GCM

# persistentオプションは、再起動で特権ダウングレードによりアクセスできなくリソースへのアクセスを回避するよう試みる
persist-key
persist-tun

# クライアント認証のためのキーと証明書
ca ca.crt
cert client.crt
key client.key

# HMAC用の共有キー。メッセージが改ざんされていなことを保証するために使用
# 暗号化そのものはメッセージを秘匿するが、改ざんそのものを検出することはできないので、この仕組み(HMAC)で補完
tls-auth ta.key 1

# 圧縮アルゴリズム。サーバ設定にもよるがサーバ側からpushされるので、なくてもいいかも。
comp-lzo

# ログの詳細レベル 
verb 3


【参考】
CentOS6でOpenVPNサーバ構築のための手順

CentOS6および7でOpenVPNサーバ構築のための手順

以下のサイトがかなり分かり易かった。
Amazon Linux 2014.03でもこのとおりに設定して動作した。
なお、上記サイトには、クライアント用のキーを作るために次のコマンド例が出てくる。このclient1を、実際に接続するクライアントの名前に変更した方がよい。
./build-key client1
ちなみに、ta.keyを作成するのは、次のコマンド。
openvpn --genkey --secret ta.key

TAPを使うserver.confの例

port 1194
proto udp
dev tap
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key  # This file should be kept secret
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 172.16.32.1 255.255.255.0 172.16.32.10 172.16.32.100
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
mssfix 1280
up "/etc/openvpn/up.sh
【参考】
OpenVPNのクライアント用configファイル例
CentOS 7でOpenVPNサーバの起動後にスクリプトを実行する。

GnuPG (gpg)でファイルを暗号化・複合化する

キーの作成(最初に一度だけ必要)

下記のコマンドを実行すると、キーの長さなどいくつか、質問されますが、基本的にデフォルトを選択して問題ありません。
$ gpg --gen-key
もし、作成の途中で下記のようなメッセージが表示された場合、他のアプリでキー入力を 伴う作業をキー作成が完了するまで行ってください。例えば、ブラウザでの何か検索したり、エディタで文書を編集します。
passphrase not correctly repeated; try again.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 274 more bytes)
コマンドが終了して、ホームディレクトリに以下のファルが作成されていば成功です。
$ ls  .gnupg/
gpg.conf  pubring.gpg  pubring.gpg~  random_seed  secring.gpg  trustdb.gpg

暗号化

内容がabc3文字のテキストファイルabc.txtを暗号化してみます。 オプションとして-cと、暗号化するファイル名を指定します。
$ gpg -c abc.txt
そうすると、拡張子として.gpgがついたファイルが生成されています。内容も 暗号化されています。
$ od abc.txt.gpg 
000000 8c 0d 04 03 03 02 5e 31 88 83 af 89 cd 59 60 c9  >......^1.....Y`.<
000010 20 80 6f 47 16 43 6d 29 1d b3 c9 5d 18 4a a7 ce  > .oG.Cm)...].J..<
000020 58 e3 0a 9c 36 d3 e9 69 6d e0 dc 02 99 ca df b3  >X...6..im.......<
000030 85                                               >.<
000031

複合化

複合化は、gpgで暗号化されたファイルを指定するだけです。
$ gpg abc.txt.gpg

OpenStackのNovaのログ出力をデバッグレベルにする

/etc/nova/nova.confのdebug=行の右辺をTrueにすると出力がデバッグレベルになる。ただし、かなりの量のログが記録されるので注意。
# Print debugging output (set logging level to DEBUG instead
# of default WARNING level). (boolean value)
#debug=false
debug=True
なお、ログは通常以下のディレクトリに作成される。
/var/log/nova

Amazon EC2とOpenStackでUser dataとMeta dataを取得する

EC2でのUser dataの取得方法。 下記の例のようにインスタンスからWebアクセスで取得する。以下ではcurlを使用するが、HTTPでアクセスできる方法であればなんでもOK。
$ curl http://169.254.169.254/latest/user-data/
Meta dataも同様に下記のようにする。
$ curl http://169.254.169.254/latest/meta-data/
上記コマンドでは、取得できる項目やディレクトリが表示されるので、それらをURLに指定してGETすることで、その値を取得できる。例えば、ami-idなら、次のとおり。
$ curl http://169.254.169.254/latest/meta-data/ami-id

OpenStackでも上記EC2と同じ方法でuser dataとmeta dataを取得できる。さらに次のOpenStack独自のURLも使用可能である。
$ curl http://169.254.169.254/openstack/latest/user_data
$ curl http://169.254.169.254/openstack/latest/meta_data.json
他にも、passowrdとvendor_data.jsonも取得可能。
$ curl http://169.254.169.254/openstack/latest
meta_data.json
user_data
password
vendor_data.json
なお、169.254.169.254への通信ができない場合は、こちらの記事も参照。

OpenStackのGatewayのないネットワーク上のVMでuser dataとmeta data取得の為のrouteを設定する

OpenStackでは、AWS EC2と同様に169.254.169.254にhttpでアクセスできる。
Gatewayが設定されていないSubnetに接続されているゲストマシンから、それらの情報を取得するには次の設定をする。なお、構成としてNeutronを使用していることを前提とする。
  • /etc/neutron/dhcp_agent.iniに次の設定をする。
    enable_isolated_metadata = True
    
  • neutron-dhcp-agentが実行されているマシン(いわゆるNetwork node)をリスタートする。
    なお、下記のようにdhcp agentの再起動だけでよさそうにも思えるが、RDO(Havana)ではうまく行かなかった。
    # service neutron_dhcp_agent restart
    
    設定が正常に反映された場合、dnsmasqの--dhcp-optsfileに指定されている設定ファイルの内容は、次のように169.254.169.254への静的ルートを含む。
    # cat /var/lib/neutron/dhcp/04911b6c-d75a-4744-b604-c99a342ca95f/opts
    tag0,option:classless-static-route,169.254.169.254/32,192.168.150.101
    tag0,249,169.254.169.254/32,192.168.150.101
    
  • ゲストマシンの起動
  • ゲストOSのrouteコマンドでrouting tableを確認すると、169.254.169.254が設定されていることが分かる。
    $ route 
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    169.254.169.254 192.168.150.101 255.255.255.255 UGH   0      0        0 eth0
    192.168.150.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    

nova-manageの基本コマンド

VMの一覧を表示。どのcompute node上で実行されているかを知ることができる。
# nova-manage vm list
ホスト(compute node)の一覧表示
# nova-manage host list

initの使い方の基本

設定の再読み込み
# initctl reload-configuration
リスト表示
# initctl list
man pageへのリンク

AWSで作成したキー(pem)を使ってsshでログインする

キーペア作成時にダウンロードした秘密鍵をamazon.pemとし、~/.sshに保存してあるとする。
他のユーザーが読める状態だとsshが警告やエラーを出す場合があるので、変更する。
$ chmod 600 .ssh/amazon.pem
それを秘密鍵として指定し、eu2-userでログインする。
ssh -i .ssh/amazon.pem -l ec2-user IP_address
なお、IP_addressには、EC2コンソールのPublic IP列の値を指定する。

MacOS Xのサファリのタブにアイコン(favicon)を表示する

Glimsというフリーソフトで実現できます。
ここからダウンロードできます。 実行すると、以下のようにタブにアイコンが表示されます。