RedHat5.7からCentOS5.7へ移行する

RHEL 5.7 の物理サーバをクローンして仮想化する際、ライセンス的に問題がありそうなので CentOS 5.7 へ移行した話。

公式ドキュメント

Migration an existing system from RHEL5 to CentOS 5

実際の作業

基本的に上記公式ドキュメントのコマンド通り。 パッケージのダウンロード元サーバが変更になっているのと、OS のバージョン、CPU アーキテクチャが違うので手直ししている。CPU アーキテクチャは uname -a で確認できる。

$ curl -O http://vault.centos.org/5.7/os/x86_64/CentOS/centos-release-5-7.el5.centos.x86_64.rpm
$ curl -O http://vault.centos.org/5.7/os/x86_64/CentOS/centos-release-notes-5.7-0.x86_64.rpm
$ curl -O http://vault.centos.org/5.7/os/x86_64/CentOS/redhat-logos-4.9.99-11.el5.centos.noarch.rpm
$ su
# cp /etc/redhat-release /etc/redhat-release-saved
# rpm -e --nodeps redhat-release-notes redhat-release yum-rhn-plugin redhat-logos
# rpm -ivh centos-release-5-7.el5.centos.x86_64.rpm centos-release-notes-5.7-0.x86_64.rpm redhat-logos-4.9.99-11.el5.centos.noarch.rpm
# yum update
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/
removing mirrorlist with no valid mirrors: /var/cache/yum/base/mirrorlist.txt
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

yum update でエラーが出るので /etc/yum.repos.d/CentOS-Base.repo を編集。

  • mirrorlistをコメントアウト
  • #baseurl=http://mirror.centos.org/centos/$releasever/ を baseurl=http://vault.centos.org/5.7/ へ変更

再度 yum update したら完了。

コマンドライン(CLI)でFortiGateを設定する

概要

FortiGateはブラウザーでアクセスすることでWeb上からGUIで設定できる。 しかし、諸事情によりコマンドラインから設定することになったので、設定方法をメモしておく。

ログインする

sshで接続することでコマンドラインから設定ができる。

$ ssh admin@192.168.0.1

ヘルプを表示する

「?」を入力すると現在使えるコマンドが表示される。

# ? ←「?」を入力しても表示されない
config      config object
get         get dynamic and system information
show        show configuration
diagnose    diagnose facility
execute     execute static commands
exit        exit CLI

コマンドの入力途中に「?」を入力するとコマンドが補完される。 例えば、sh?と入力するとshowに補完される。

また、引数が必要なコマンドを入力した後に「?」を入力すると引数の候補が表示される。

バージョンを確認する

# get system status

設定を確認する

# show

デフォルト値を含むすべての設定を確認する

数メガバイトある設定が出力される為、かなり時間がかかるので注意。

# show full-configuration

moreを使用しない

コンソールへ設定を出力してバックアップを取りたいような場合は、 下記のコマンドでmoreを表示しないようにすることができる。

  • moreを使用しないように変更

    # config system console
    # set output standard
    # end
    
  • moreを使用するように戻す

    # config system console
    # set output more
    # end
    

設定を変更する

上記「設定を確認する」や「デフォルト値を含むすべての設定を確認する」で 表示されたものを見れば分かるが、設定はディレクトリのように階層化されている。 また、表示されたものがほぼそのまま設定用のコマンドになっている。

基本的に、

  1. コマンド「config ○○○」で設定を行いたい階層に移動
  2. コマンド「set △△△ ×××」で値を設定
  3. コマンド「end」で設定を完了

という流れで設定する。上記「moreを使用しない」を参照。

設定を保存する

設定は自動的に保存される。 Cisco製品のように「write memory」などで明示的に保存する必要はない。

設定を終了し切断する

# exit

Visual Studio Code で Markdown のプレビューを保存する

概要

Visual Studio Code の Markdown プレビューは なかなか見栄えが良くて気に入ってる。 そのまま保存してドキュメントとして使いたいが、 今のところ (2017/01/14、バージョン1.8.1) プレビューを保存する機能は ないようなので、同等のものを生成するスクリプトを作成した。

ネットを検索するといくつか同様のことを行うものが見つかったが、 Markdown エンジンの違いにより VSCode と出力結果が異なる (リスト内のテーブルなど) ものばかりだった。 このスクリプトは VSCode と同じ markdown-it を使用し、出力結果が同じになるようにしている。

動作に必要なもの

Node.js が必要

使い方

  1. このリポジトリをローカルにクローンする
  2. npm install する
  3. 同じフォルダにHTML化したい Markdown ファイルを入れる
  4. フォルダを Visual Studio Code で開く
  5. gulpfile.js を編集し、HTML のタイトルなどを設定する
  6. Ctrl + Shift + B を押してビルドする
  7. ビルドが終わるとできる dest フォルダに markdown.css を入れる

    ※ markdown.css は VS Codeをインストールしたフォルダの resources\app\extensions\markdown\media\markdown.css にあります。

ダウンロード

GitHub からダウンロードできます。

バッチファイルでミリ秒単位のSleepを行う

最近の Windows だと timeout コマンドを使えば秒単位で Sleep (Wait) できるがミリ秒単位ではできない。 そこで Windows PowerShell を使って以下のようにミリ秒単位で Sleep する。

[Jekyll] ビルドするときにだけSass(SCSS)を圧縮する

_config.yml に Sass(SCSS) を圧縮する設定を書くと、常時圧縮がかかってしまう。 これでは、ブラウザで表示を確認しながら CSS をいじるとき困る。 ということで、製作中は圧縮せずにビルド時だけ圧縮する方法。

※ 2016/3/4現在、 Jekyll では Sourcemap が出力できないっぽい。

1. ビルド用設定ファイルを作る

_config.yml と同じフォルダに _config-production.yml という名前のファイルを作成し、以下の通り書く

sass:
  style: compressed

参考: Assets - Jekyll • Simple, blog-aware, static sites

2. 製作時のコマンド

製作中はいつも通り。

jekyll serve

3. ビルド時のコマンド

ビルドするときは –config オプションで _config.yml と _config-production.yml の2つを読み込む。 両方のファイルに同じ設定項目がある場合は、後ろに書いた方の設定で上書きされる。 カンマとファイル名の間にスペースを入れないこと。

jekyll build --config _config.yml,_config-production.yml

参考: Configuration - Jekyll • Simple, blog-aware, static sites