【Mac】dein.vimの設定

■環境

macOS Sierra 10.12.5
Vim 7.4


vimのプラグイン管理をするため、dein.vimを導入してみます。

■dein.vim導入手順

Shougo氏のGitHub通りに
インストールを進めます。

curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh installer.sh ~/.vim

上記コマンドが成功すると、.vimrc記載する内容が表示されるので、
それを基本的にそのまま.vimrcに記載します。
変更する箇所は後半の自動インストールのコメントアウトを外すくらいです。

以下のように.vimrcに記載する事になると思います。

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/Users/yourhome/.vim/repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/Users/yourhome/.vim')
  call dein#begin('/Users/yourhome/.vim')

  " Let dein manage dein
  " Required:
  call dein#add('/Users/yourhome/.vim/repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here:
  call dein#add('Shougo/neosnippet.vim')
  call dein#add('Shougo/neosnippet-snippets')

  " You can specify revision/branch/tag.
  call dein#add('Shougo/vimshell', { 'rev': '3787e5' })

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

"End dein Scripts-------------------------

ここまで実施すると次回vim起動時にプラグインのインストールが行われ、
基本的な設定は完了します。

■プラグインの追加

deinプラグインを追加してみます。

The NERD Tree

https://github.com/scrooloose/nerdtree

エディタの左端にディレクトリ階層(ツリー)を表示できるようにするプラグインです。
(IDEみたいになる)

.vimrcに以下の記載を追加します。

" The NERD Tree
call dein#add('scrooloose/nerdtree')
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'

"〜if dein#load_state()〜endifの外〜
map <C-n> :NERDTreeToggle<CR>

vim起動後、「:NERDTreeToggle」と打つと
左側にツリーが表示されたり非表示になったりします。
上記設定では最終行で「Ctrl+n」に「:NERDTreeToggle」をマッピングしているので
「Ctrl+n」で表示/非表示を切り替えられます。

Indent Guides

https://github.com/nathanaelkane/vim-indent-guides

インデントを色付けして分かりやすくしてくれます。

.vimrcに以下の記載を追加します。

"Indent Guide
call dein#add('nathanaelkane/vim-indent-guides')

"〜if dein#load_state()〜endifの外〜
let g:indent_guides_enable_on_vim_startup = 1
Share

【Let’sEncrypt】Certbotの使い方(CentOS7 + nginx)

■環境

CentOS 7.3
nginx 1.10.3
certbot 0.14.1


■初回SSL証明書発行

certbotをインストールする。

yum -y install yum-utils
yum install certbot

証明書を発行する

certbot certonly --webroot -w /usr/share/nginx/html -d your-domain.com

※上記コマンドは環境に合わせて読み替えてください。
/usr/share/nginx/html
 →設定するドメインのドキュメントルート
your-domain.com
 →設定するドメイン

これで証明書が以下ディレクトリに生成されます。

ll /etc/letsencrypt/live/your-domain.com/
lrwxrwxrwx 1 root root  40 Jun 12 16:41 cert.pem -> ../../archive/your-domain.com/cert1.pem
lrwxrwxrwx 1 root root  41 Jun 12 16:41 chain.pem -> ../../archive/your-domain.com/chain1.pem
lrwxrwxrwx 1 root root  45 Jun 12 16:41 fullchain.pem -> ../../archive/your-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root  43 Jun 12 16:41 privkey.pem -> ../../archive/your-domain.com/privkey1.pem

証明書更新の度に上記シンボリックリンクの向き先が新証明書に切り替わるので、
nginx側の設定は1度設定すれば変える必要がなくなります。

■nginx設定

nginxの設定ファイルにて、SSL証明書と秘密鍵の設定をします。
(/etc/nginx/nginx.conf)

(省略)
server {
    listen  443 ssl http2 default_server;
    (省略)
    ssl_certificate "/etc/letsencrypt/live/your-domain.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/your-domain.com/privkey.pem";
    (省略)
}

設定後、nginxを再起動します。

systemctl restart nginx.service

■SSL証明書の自動再発行設定

SSL証明書の期限が残り1ヶ月を切ったら、証明書更新が可能となります。
更新は以下コマンドで実施します。

certbot renew

自動で更新できるように、cronに上記コマンドを登録しておきます。
例として、毎週月曜日の早朝に更新作業を行なうようにします。
(残り期限1ヶ月以上残っている場合は空振りして終わる)

10 0 * * 1 certbot renew

これで設定は完了です。

Share

MacにDocker環境を作る

■環境

macOS Sierra 10.12.4


Dockerのインストール

公式ページ(こちら)の「Get Docker for Mac(Stable)」をクリックし、
Dockerのdmgをダウンロードする。

ダウンロードしたdmgを実行すると「Docker.app」を「Applications」へドラッグ&ドロップするよう表示されるので、
その通りに実施する。

これで、LaunchpadにDockerが追加されましたので、クリックして起動します。
初回起動時に設定が走るので、Macのパスワードを聞かれます。

しばらく設定が走り、「Docker is now up and running!」が表示されれば設定完了です。
ターミナルを立ち上げ、以下コマンドを実行するとDockerのバージョンを返すようになっているはずです。

docker version

問題なければ「Got it」をクリックしてDockerのウィンドウを閉じます。
ウィンドウを閉じてもバックグラウンドで動いているので、
ステータスバーに鯨のアイコンが表示されています。

初期設定

デフォルトではMacにログオンしたら自動でDockerが起動するようになっていますが、
普段はDockerを起動しておく必要がない場合はステータスバーの鯨をクリックし、
Preferences > General > Start Docker when you log in
のチェックボックスを外しておきます。
(検証時のみDockrが欲しい人など)
その場合、Dockerを利用するタイミングでLaunchpadからDockerを起動してください。

その他、Dockerコンテナと共有するディレクトリなどもPreferencesで変更できるので、
必要に応じて設定を変更してください。

Share

Cisco IOSスイッチ操作チートシート

管理者権限になる

enable

※省略系はen

現在の設定を参照する

# show interfaces      ※全て見る場合
# show interfaces GigabitEthernet0/X  ※特定のインターフェースのみ見る
# show vlan

※「GigabitEthernet0/X」は「Gi0/X」と省略できる

設定モードに入る

# configure terminal

※省略系はconf terminal

(設定モードにて)Smart Installを無効化する

(config)# no vstack

(設定モードにて)管理者権限のパスワードを変更する

(config)# enable password {変更後のパスワード}

(設定モードにて)IF設定モードに入る

(config)# interface GigabitEthernet0/X

(IF設定モードにて)停止・起動

(config-if)# shutdown
(config-if)# no shutdown

(IF設定モードにて)vlanの切り替え

(config-if)# switchport mode access
(config-if)# switchport access vlan {vlan番号}

各モードを抜ける

(なんらかのモード)# exit

各種設定した内容を保存する

# write memory

※最後にこれを実行しておかないと、再起動後に設定内容が戻ってしまう。

Share

CentOS7のネットワーク周り初期設定

■環境

CentOS 7.3


bonding設定

参考URL:https://bacchi.me/linux/bonding/

現状確認しておきます。

nmcli c
ip a

bonding用インターフェースを追加します。

nmcli connection add type bond autoconnect no con-name bond0 ifname bond0 mode active-backup

物理インターフェースをbondに紐付けます

nmcli connection add type bond-slave autoconnect no ifname eno1 master bond0
nmcli connection add type bond-slave autoconnect no ifname eno2 master bond0

bondにIPを設定します。

nmcli c mod bond0 ipv4.method manual ipv4.address "192.168.999.999/32" ipv4.gateway "192.168.999.254" ipv6.method ignore
nmcli c mod bond0 ipv4.dns 192.168.999.254

物理インターフェースを無効にし、bondインターフェースを有効にします。

nmcli c m eno1 connection.autoconnect no
nmcli c m eno2 connection.autoconnect no

nmcli c m bond-slave-eno1 connection.autoconnect yes
nmcli c m bond-slave-eno2 connection.autoconnect yes
nmcli c m bond0 connection.autoconnect yes

nmcli c up bond-slave-eno1
nmcli c up bond-slave-eno2
nmcli c up bond0

ホスト名変更

hostnamectl set-hostname sample.com

SELinux無効化

SELinuxが不要な場合は無効化します。

vim /etc/sysconfig/selinux
SELINUX=enforcing
SELINUX=disabled

firewalld停止

別のファイアーウォール内のサーバである場合、
不要なのでfirewalldは停止しておきます。

systemctl stop firewalld
systemctl disable firewalld
Share