ラズパイでいろいろやってみたい(2)
前回までのあらすじ:何もしていない。
作業メモ
物理的な準備
まずはラズパイのセットアップ。
必要な機材は、ラズパイ・電源ケーブル・HDMIケーブル・SDカード・キーボードぐらい。
SDカードを買い忘れないように気をつけよう(1敗)
SDカードはmicroSDなので気をつけよう(1敗)
はじめに、SDカードにRaspberry Piの標準のOSであるRaspbianを書き込む。
去年ぐらいにラズパイ公式のインストーラーができたらしいのでそれを利用してみることに。
書き込み終わったら、それぞれの機材をセットアップする。
SSHの準備
起動したら、コンフィグ画面に則って設定を進める。
その後、ipアドレス、デフォルトゲートウェイを設定し、raspi-configからSSHサービスを起動する
WinPCからSSH接続ができる形に。
(Win側へのpingが通らない場合は、Win FWもしくはセキュリティソフトの影響の可能性。ネットワークを信用する設定(社内・家庭用ネットワーク)にする)
ラズパイでいろいろやってみたい(1)
頭の整理のためにメモを残しておく。
NWの勉強をしないといけないが、手を動かさないとなにも理解した気にならないので自宅で環境を作ってみることに。
2年ぐらい前に買ったラズパイ(Raspberry Pi 3 Model B)を持て余していたのでいろいろやってみたい。
やってみたいこと
- WebサーバをInternetに公開する
- Djangoで簡単なWebシステムを作ってみる
- syslogサーバ構築
- Zabbix等でNW監視
全部ラズパイで動かすのはスペック的にきついかな?
ざっくり設計
WebサーバをInternetに公開する
私の自宅環境は、S社ISPと契約していてInternet側はNTTのONU(GE-ONU)が終端になっている。
なお、光BBユニットはないのでv6環境は作れません。
まず、ルータではポート開放を行い外部との通信がとれるようにする。
サーバでは、IPアドレスを固定にし、FWの設定で指定のポートでの通信を許可する設定を行う。
これでサーバが建てば外部からのアクセスはできるはず(PC側で検証済み)。
Djangoで簡単なWebシステムを作ってみる
最近プログラミングしなさすぎ問題を解消するためDjangoでシステム作ってみる
何を作るのかは未定だが、RESTfulなAPIを作らないと行けない縛りで。
後述のNW監視を自作してもいいかも。
開発はデスクトップPCでやりたいので、流行りのDockerで移行をスムーズにしたい。
でも、PCのプロセッサはx86なのに対して、ラズパイはarmなので色々大変らしい qiita.com
どうしたもんかね。
syslogサーバ構築
ルータにsyslog転送機能があるので、せっかくなので。
アラートとか上げれるようにしてもいいかも?
Zabbix等でNW監視
よくわからないけど、商用環境でNW監視してない環境はないと思うので。
しかし、自宅ルータはSNMPに対応していないため、他の方法を取らねばならない
さいごに
設計を考えるのは楽しいけど実際に手を動かすのはツライのでやらないかもしれない。
あとSDカード買い忘れた。
Next↓
wordとWORDの違い
VimのwordとWORDの違いについて説明します.
w
はword単位,W
はWORD単位で,どちらも単語を表現しているのですが,例えば
cnoremap <C-P> <Up>
という文があったとき,w
なら9回で次の行に行くのに対し,W
の場合3回で次の行に行きます.何が違うのかというとw
はスペースなどの区切り文字で区切り,アルファベットや数字などの連続が途切れた場合も区切ります.W
の場合はスペースなどの区切り文字のみで区切ります.なので,w
の場合はcnoremap |<|C|-|P|> |<|Up|>
と区切られ,W
ではcnoremap |<C-P> |<Up>
と区切られます.また,区切り文字はiskeyword
オプションで指定できます.
ただし,特殊なケースとして,cwとdwの挙動が少し違うことも気をつけなければなりません.カーソルが,
cnorema|p <C-P> <Up>
の場所のとき,dw
ではcnorema|<C-P> <Up>
となりますが,cw
だとcnorema| <C-P> <Up>
と空白が残ります.
cw
では単語を削除するのに対し,dw
では移動した場所まで削除するという違いに気をつけましょう.
Vimrc晒し
vimrc晒し
この記事は静大情報LT大会(IT) Advent Calendar 2018 11日の記事である
vimとは
使ってると女の子にモテるエディタ
使い始めて1年ちょっとぐらいになる
.vimrcとは
vimの設定ファイルのこと.なお,nvimではinit.vimになる
僕の.vimrcは250行を超えているのでここではすべてを紹介することはしない
環境
option
set winaltkeys=no " ALTキー押下時にメニューにフォーカスしないようにする
僕はaltキーにいろいろマッピングしているので必須
しかしaltキーを二回押すとようやくメニューバーにフォーカスが移るようになっている
set splitright " vsplitで右にウィンドウ生成 set splitbelow " splitで下にウィンドウ生成
好みだけどこっちのほうが自然だと思う
set shiftwidth=4 " space4つでインデント
スペース4つ派はモテるらしいので
colorscheme
colorschemeとはエディタの色使いのこと
視認性やモチベーションにかかわるので結構重要だと思う
有名どころだとmolokaiとかtenderとかある
colorscheme evening
evening使ってますけどもっといいのないかなあ
コメントが見やすいのでとりあえずこれを使う
keymap
マッピングは他の人が僕のキーボードで作業することなどを考えるとあまり変えないほうがいいかもしれないが,僕はある程度の互換性を保ちつつ誰も使っていないようなキーから変えていく.例えばスペースキーやエンターキーなどをマッピングする
" コマンドモードをBash風にする cnoremap <C-P> <Up> cnoremap <C-N> <Down> cnoremap <C-B> <Left> cnoremap <C-F> <Right> cnoremap <C-D> <Delete> cnoremap <C-A> <Home> cnoremap <C-E> <End>
:
を押したあとのコマンド入力時のキーバインドをBash風にする
" altキーを利用してインサート時にカーソル移動を容易にする inoremap <M-k> <UP> inoremap <M-j> <Down> inoremap <M-l> <Right> inoremap <M-h> <Left> inoremap <M-a> <Home> inoremap <M-e> <End> inoremap <M-b> <C-o>b inoremap <M-w> <C-o>w inoremap <M-u> <C-o><C-u> inoremap <M-d> <Delete>
inoremap
でインサートモード時のキーバインドを変更する.
<C-o>
は1コマンドのみノーマルモードに戻るという意味なので,<M-w>
はaltキー+wで1単語前にカーソルを移動させていることになる
nnoremap <space>1 :b1<CR> nnoremap <space>2 :b2<CR> nnoremap <space>3 :b3<CR> nnoremap <space>4 :b4<CR> nnoremap <space>5 :b5<CR> nnoremap <space>6 :b6<CR> nnoremap <space>7 :b7<CR> nnoremap <space>8 :b8<CR> nnoremap <space>9 :b9<CR> nnoremap <space><space> :b#<CR> nnoremap <space>l :bnext<CR> nnoremap <space>h :bprevious<CR> nnoremap <space>d :bd<CR>
バッファー間移動を簡単にしている
<space><space>
で直前のバッファーへ移動できたり,<space>l
で次のバッファーへ移動など結構便利
noremap <S-y> y$
VimではD
で行末まで削除,C
で行末まで削除して挿入モードといったコマンドが用意されているが,Y
は歴史的な経緯からyy
と同じように行全体をヤンクする動作になっているので行末までヤンクに変更する
プラグイン
プラグインマネージャー
Vimは標準でも素晴らしいエディタだが,プラグインを導入することで生産性がさらに向上する
なお,プラグインマネージャーにはVimPlugを使用する
noremap <f2> :PlugUpdate<CR>
また,F2キーでプラグインすべてのアップデートを行うようにした
peekaboo
https://github.com/junegunn/vim-peekaboo
lexima
https://github.com/cohama/lexima.vim
開き括弧を入力したら閉じ括弧を自動で入力してくれたり改行したらいい感じにしてくれたりする
yankround
https://github.com/LeafCage/yankround.vim
ヤンクする時に前の無名レジスタにさかのぼってペーストすることができる
さいごに
僕の.vimrcはコチラ
なお,このページはVisual Studio Code で書きました
VSCodeもいいぞ