2017年9月2日土曜日

Ubuntu 17.10のネットワーク設定がifupdownからnetplanに変更になったでござる

Ryzen 7を入手したので、Ubuntu Server 17.10のdaily buildでいろいろ試していたところ、
/etc/network/interfacesで固定IPが設定できなくなっていたので、
netplanの設定方法を確認した。

参考

https://insights.ubuntu.com/2017/07/10/netplan-by-default-in-17-10/
https://git.launchpad.net/netplan/tree/doc/netplan.md

インストール直後の設定

cat /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp38s0:
      dhcp4: yes
      dhcp6: yes
マニュアルを参考にして、定義ファイルを書き換え
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp38s0:
      dhcp4: no
      addresses: [192.168.100.10/24]
      gateway4: 192.168.100.1
      nameservers:
        addresses: [8.8.8.8]
      dhcp6: no
上記の設定のみでは反映されなかったので、以下のファイルを作成した。
sudo mkdir /etc/network/interfaces.d
sudo touch /etc/network/interfaces.d/enp38s0
再起動したところ固定IPアドレスが反映されました。
このあたりは、Ubuntu 18.04 LTSがリリースされてから再度調べてみる。

しかし、Ryzen 7いいですね。

2017年8月28日月曜日

Bitbucketはipv6対応していない???

ある日突然??
Bitbucketにgit cloneやらアクセスできなくなるわけですね。
環境は、macOS Sierraで、ssh接続で発生しました。
Warning: Permanently added the RSA host key for IP address '2401:1d80:1010::150' to the list of known hosts.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
公開鍵を追加、削除してみたり、ssh -vvvで動作確認してみたりするのですが、 ユーザーIDは認識できているようなので、鍵は問題なさそう。 上記のように、ipv6のアドレスでアクセスしていたので、念のため [ネットワーク] => [TCP/IP] => [IPv6の設定]を「リンクローカルのみ」に変更したところ接続できました。
Warning: Permanently added the RSA host key for IP address '104.192.143.2' to the list of known hosts.
Counting objects: 50, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (36/36), done.
Writing objects: 100% (50/50), 38.81 KiB | 0 bytes/s, done.
Total 50 (delta 3), reused 0 (delta 0)
以下省略
ipv6対応してるはずなんですけどね。
https://blog.bitbucket.org/2016/07/21/bitbucket-cloud-now-available-ipv6/

時間がないので、ここまで。

2016年12月3日土曜日

Buffaloの無線LAN経由で、Beta By Crashlyticsのアプリダウンロードが失敗する

いつもお世話になっているCrashlyticsですが、
アプリのダウンロードがエラー(Timeout)になることが多かったんですが、
いろいろ試した結果、Buffaloの無線LANの設定を変更したところアプリのダウンロードが成功するようになりました。
毎回途中まで(20%~60%くらい)ダウンロードできるだけに切り分け難しかったんですが。

「Multicast Rate」の値を1Mbpsから24Mbpsに変更した。

これが原因ということは言い切れないわけですが、うちではうまくいきました。
そういうこともあるようです。

2016年9月29日木曜日

macOS SierraにアップグレードしたらSSHエージェント転送できなくなったよ

El CapitanからmacOS Sierrraにアップグレードして前回のアップグレードと違って問題ないなと思っていたら・・・ SSHエージェント転送できないじゃないですか。

sshのバージョンが変わったのか設定が変わったのかまでは調べてませんが、
次の設定を追加して無事完了です。

.ssh/config
AddKeysToAgent yes
いつもクリーンインストールしてますが、今回はこのまま次のバージョンまで使うかな。

追記

ssh -V
OpenSSH_7.2p2, LibreSSL 2.4.1
バージョンを確認したところ7.2だったので、おそらくこのバージョンからのオプション(新機能)が必要になったようです。
http://www.openssh.com/txt/release-7.2
New Features
------------

 * ssh(1): Add an AddKeysToAgent client option which can be set to
   'yes', 'no', 'ask', or 'confirm', and defaults to 'no'.  When
   enabled, a private key that is used during authentication will be
   added to ssh-agent if it is running (with confirmation enabled if
   set to 'confirm').
ただの新機能あるあるでした。失礼いたしました。

2016年8月3日水曜日

Windows 10 Anniversary UpdateしたのでBashを試す

Windows 10 Anniversary Updateをさっそくインストールしました。
時間かかるので作業しない時にやるのがおすすめです。

参考 アップデートの所要時間

  • ダウンロード 30分
  • インストール(再起動)20分
  • Bashインストール 10分

Windows Subsystem for Linux (Beta)を有効化する

まだbeta版なんですね。
有効化してPCを再起動します。

コマンドプロンプトからbashを起動する

>bash
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

この機能を使用するためには開発者モードを有効にする必要があります。
ベータ版なので、開発者モードが必要なのかな?

開発者モードに変更する

  1. Windowsキー + Iキーで「Windowsの設定」画面を開く
  2. 「更新とセキュリティー」をクリック
  3. サイドメニューの「開発者向け」をクリック
  4. 「開発者モード」をクリック
  5. 「はい」をクリック
  6. 念のため再起動(おそらく不要)

コマンドプロンプトからbashを起動する

>bash
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

続行するには、"y" を入力してください:
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
ストアからダウンロードなんですね。
UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はありません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください:
Windowsとは別世界のようですので、ユーザー名を設定しました。
Microsoftアカウントとは別に扱えるので、私にとってはこの仕様は助かります。
新しい UNIX ユーザー名を入力してください: 
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: password updated successfully
インストールが正常に終了しました
環境が間もなく開始されます...
ドキュメントを参照できる場所: https://aka.ms/wsldocs
***@DESKTOP:/mnt/c/Users/username$
おおおおお、そのまま使える。すこし感動
$ uname -a
Linux DESKTOP 3.4.0+ #1 PREEMPT Thu Aug 1 17:06:05 CST 2013 x86_64 x86_64 x86_64 GNU/Linux
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          224G   46G  178G  21% /
tmpfs           224G   46G  178G  21% /run
none            224G   46G  178G  21% /run/lock
none            224G   46G  178G  21% /run/shm
none            224G   46G  178G  21% /run/user
$ ls -la /
合計 141
drwxr-xr-x 2 root root     0  1月  1  1970 .
drwxr-xr-x 2 root root     0  1月  1  1970 ..
drwxr-xr-x 2 root root     0  8月  3 08:24 acct
drwxr-xr-x 2 root root     0  3月 24 05:45 bin
drwxr-xr-x 2 root root     0  3月 24 05:54 boot
drwxrwx--- 2 root root     0  1月  1  1970 cache
drwxrwx--x 2 root root     0  1月  1  1970 data
drwxr-xr-x 2 root root     0  8月  3 08:21 dev
drwxr-xr-x 2 root root     0  8月  3 08:21 etc
drwxr-xr-x 2 root root     0  1月  1  1970 home
-rwxr-x--- 1 root root 38896  1月  1  1970 init
drwxr-xr-x 2 root root     0  3月 24 05:54 lib
drwxr-xr-x 2 root root     0  3月 24 05:42 lib64
drwx------ 2 root root     0  3月 24 05:46 lost+found
drwxr-xr-x 2 root root     0  3月 24 05:41 media
drwxr-xr-x 2 root root     0  1月  1  1970 mnt
drwxr-xr-x 2 root root     0  3月 24 05:41 opt
dr-xr-xr-x 1 root root     0  8月  3 08:21 proc
drwx------ 2 root root     0  1月  1  1970 root
drwxr-xr-x 2 root root     0  8月  3 08:21 run
drwxr-xr-x 2 root root     0  3月 24 05:45 sbin
drwxr-xr-x 2 root root     0  3月 24 05:41 srv
dr-xr-xr-x 1 root root     0  8月  3 08:21 sys
drwxrwxrwt 2 root root     0  8月  3 08:19 tmp
drwxr-xr-x 2 root root     0  3月 24 05:41 usr
drwxr-xr-x 2 root root     0  3月 24 05:45 var
気になるエディターは?
$ sudo update-alternatives --config editor
alternative editor (/usr/bin/editor を提供) には 4 個の選択肢があります。

  選択肢    パス              優先度  状態
------------------------------------------------------------
* 0            /bin/nano            40        自動モード
  1            /bin/ed             -100       手動モード
  2            /bin/nano            40        手動モード
  3            /usr/bin/vim.basic   30        手動モード
  4            /usr/bin/vim.tiny    10        手動モード
vimにしました。
$ screen
Cannot make directory '/var/run/screen': 許可がありません
screenはそのままでは起動せずディレクトリを作成した。
sudo mkdir /var/run/screen
sudo chmod 777 /var/run/screen
tmuxは問題なく起動した。
sudo: ホスト HOSTNAME の名前解決ができません
sudoコマンドは毎回名前解決で失敗するので/etc/hostsにコンピュータ名を登録した。

細かいところはいろいろありそうですが、使えそうな予感です。
Insider previewの不具合を恐れてこれまで使えなかったのですが、しばらくこれで遊んでみます。
この手軽さ・・・、今までのWindowsはなんだったのか・・・
最後に、
Windowsメニューに表示される名前は「Bash on Ubuntu on Windows」という長い名前でした。



2016年7月31日日曜日

Windows10にアップグレードしたのですぐに開発で使えるようにした

Windows10の無料アップグレード終了前にWindows7, 8.1を駆け込みでアップグレードしました。

Windows7はアップグレードで、Windows8.1はクリーンインストールでWindows10構築しました。


これまでも何回かアップグレードにチャレンジしましたが、デバイスドライバやソフトが未対応で使えなかったので見送っていましたが、最後のチャレンジだと思って試したところ問題ありませんでした。ぎりぎりまでアップグレード見送ろうと思っていましたがやってよかったです。

ちなみに、未対応だったソフトやデバイスドライバは、ここでご紹介するものではありません。


すぐに仕事で使えるようにしたかったので、次の3つをすぐにインストールしました。

ただ、VSC以外はリリース版ではないので導入は自己責任になります。

  • win-sshfs
  • Rlogin
  • Visual Studio Code

Dokany 1.0.0-RC4

stableではないのですが、バグフィックスも進んでいるようです。

DokanSetup.exeをダウンロードしてインストールしました。

https://github.com/dokan-dev/dokany/releases

win-sshfs 1.6.0 RC2

https://github.com/Foreveryone-cz/win-sshfs/releases

release-1.6.0-rc2.zipをダウンロードして解凍、保存しました。


RLogin (2.20.6)

ターミナルはRloginを試してみました。

こちらも今のところ問題なく動作しています。

http://nanno.dip.jp/softlib/man/rlogin/

Visual Studio Code

エディターは、VSCを試しています。

https://www.visualstudio.com/ja-jp/products/code-vs.aspx

これいいですね。

昔はVisual Studioが最高だと思っていたこともあったので、そのクオリティーで今後もアップグレードされるのを期待します。


2016年3月5日土曜日

Amazon SESを使ったLumen(Laravel)のメール送信

Lumen(5.1)では、Laravelのメール機能が標準では含まれていないので、追加して試してみました。

参考

https://laravel.com/docs/5.1/mail

追加するパッケージ

composer.jsonのrequireに以下のパッケージを追加してcomposer updateします。
 "illuminate/mail": "5.1.*",
 "aws/aws-sdk-php": "~3.0",

設定ファイルの追加

config/mail.phpとconfig/services.phpファイルの作成(デフォルト設定ファイルmail.phpをコピーする)
// configディレクトリが無い場合は作成する
cp vendor/laravel/lumen-framework/config/mail.php config/mail.php

// services.phpは空ファイルを作成して設定値を自分で記述した
touch config/services.php

config/mail.phpの修正

// デフォルト値をsesと書き換える。または環境変数MAIL_DRIVERを設定する
driver' => env('MAIL_DRIVER', 'ses'),

config/services.php

awsで作成した値を設定します。
<?php
return [
    'ses' => [
        'key'    => 'keyの値',
        'secret' => 'secretの値',
        'region' => 'リージョンの値',  // e.g. us-east-1
    ]
];

テンプレートの作成

// テンプレートファイルを作成
touch resource/views/emails/example.blade.php
テンプレートには、通常のviewと同様に変数を渡せます。

HTMLメールの送信

Mail::send('emails.example', ['user' => $user], function ($m) use ($user) {
    $m->from('hello@app.com', 'Your Application');
    $m->to('メールアドレス', '名前')->subject('テストメールの件名');
});

テキストメールの送信

// テンプレートの値を配列にしてキーをtext、値にテンプレートのパスを指定する
Mail::send(['text' => 'emails.example'], ['user' => $user], function ($m) use ($user) {
    $m->from('hello@app.com', 'Your Application');
    $m->to('メールアドレス', '名前')->subject('テストメールの件名');
 });

// 配列でhtmlメールを指定する場合
Mail::send(['html.view', 'text.view'], $data, $callback);

まとめ


Laravelのドキュメントを確認した限りでは、送信オプションもいろいろ網羅されているので細かい調整もできそうです。標準以上の機能が必要なケースはあまりないかもしれませんが、もっとカスタマイズが必要な場合は、コアのソースを確認して調査する必要がありそうです。
あと、Amazon SESはデフォルトで送信制限があるので、テスト用のメールアドレスはあらかじめSES側で設定とverify(メールアドレスの有効性の確認)しておく必要があります。制限解除済みであれば登録不要です。