LoginSignup
7
7

More than 5 years have passed since last update.

[試行錯誤編]Ansible on cygwinを活用した、実用開発環境構築 ①普通にzshまで

Last updated at Posted at 2015-11-04

方針:

cygwinの利用は最小限に

cygwinについて、よくわかっていないので、無理はしない。
例えば、node環境をcygwin側で構築するのは明らかに茨の道なのでパス。

とりあえず、cygwin使うことでzshとansibleが"普通に"動くというところで満足しておく。
nodeやjavaの環境はwindowsのものを使う。

  • "普通に"動かすためには、いくつか工夫が必要。
  • 付記:ansible 動かすためのpython環境は、cygwin側にある。

追記:Cygwin別パッケージBabunを導入して"普通に"動くようになった。以後、[Babunを使う方法]を推奨したい。


cygwin 1.7系を使用し、なるべくmacやlinuxと親しい環境を構築。

以前、こちらで構築した"Ansible on cygwin with zsh"を活用し、必要な設定を追加していく。すなわち、サーバ環境はansibleで管理する方針。

まずは、cygwinのバージョン確認。
$ uname -a
CYGWIN_NT-10.0-WOW DESKTOP-NIBB0OO 1.7.35(0.287/5/3) 2015-03-04 12:07 i686 Cygwin

1.7系は、ちょっと頑張れば十分に使えるものと期待し作業に着手。このあたりを参考させてもらい作業をすすめる。

(背景) windows環境を過度に信用せず、dropbox上で作業

cygwinにはいろいろ地雷が埋まっているっぽいが、windowsだって相当なもの。
ただし、nodeやjavaのバージョンその他の事情によって、
windows側ではトラブルった場合、windowsユーザーを作り直すという手がある。

環境でとらぶったらwindowsユーザー毎作りなおすつもりで、環境設定その他一式をdropboxに置いておく。

ansibleでのサーバ環境構築の試行錯誤過程もdropboxで管理

依存関係が少ないansibleは、クライアント側をきちんと管理しておけば、ひとまず、安心のはず(今後、検証)。

Cygwinを適切に起動させる(全画面でzsh、ちゃんとhistoryも効いて・・)

まずは、cygwin-ansible.batのインストール先(例、C:\cygwin)を確認し、cygwin-ansible.batで、cygwin環境に入る。

zshの設定

"apt-cyg install zsh"した直後のスタート地点は以下。
$ zsh --version
zsh 5.0.8 (i686-pc-cygwin)

適宜、 再入門などを参考させていただき修正していく。

oh-my-zshのインストール

Via oh-my-cygwin:

wget --no-check-certificate https://raw.github.com/haithembelhaj/oh-my-cygwin/master/oh-my-cygwin.sh -O - | sh

ターミナルエミュレータminttyのディフォルトのシェルをzshに

ansible-cygwinの場合、chshコマンドがなく、起動時に/etc/passwdを使っていない。
Cygwinインストールフォルダのbatファイル(例、C:\cygwin\cygwin-ansible.bat)における
ターミナルエミュレータminttyの起動方法をbashをzshに変更することで対処する。

変更前のcygwin-ansible.bat
@echo off
%~d0
set PATH=%SystemRoot%\system32
set cygdrive=%~d0
set cygdir=%~dp0

cd %~dp0\bin

set MAKE_MODE=unix
set CYGWIN=noacl nontsec nosmbntsec
set SHELL=/bin/bash
bash.exe -c "/usr/bin/mintty - &"
exit

変更後は、以下のとおり(--window maxで、起動時に全画面表示)。

cygwin-ansible.bat
@echo off
%~d0
set PATH=%SystemRoot%\system32
set cygdrive=%~d0
set cygdir=%~dp0

cd %~dp0\bin

set MAKE_MODE=unix
set CYGWIN=noacl nontsec nosmbntsec
set SHELL=/bin/zsh
zsh.exe -c "/usr/bin/mintty  --window max - &"
exit

[付記] telnet経由で使うとき等は、 以下のようにして、/etc/passwdを作成・変更する。

mkpasswd > /etc/passwd
nano /etc/passwd

汎用的な確認方法echo $0で、既存のシェルを確認。

echo $0
-zsh

historyを有効にする。

最近まで、cygwin上のzshはhistoryが使えないというありえない状態だったが、最近パッチがリリースされたため、
.zshrcに以下を追記することで、ヒストリーが有効になる。

HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000

ターミナルminttyをかっこ良くする

疲れてきたので、こちらに従い、速攻で、かっこ良くUTF-8日本語環境とさせていただく。

touch .minttyrcし、以下に設定

BoldAsFont=no
Transparency=high
Font=Inconsolata
FontIsBold=no
FontHeight=10
CursorColour=255,0,0
CursorType=block
Locale=ja_JP
Charset=UTF-8
BackspaceSendsBS=yes
RightClickAction=paste
ClicksTargetApp=no
CursorBlinks=yes
FontSmoothing=default
CopyOnSelect=yes
  • Transparency=grassの方がかっこよかった

再起動すると、フォントがちょっとかっこよくなり利便性も向上^^

今後の方針

クライアント側はJSで、サーバー側はJVM言語でいくので、以下の環境を整備し、cygwin上で普通に作業できるようにしていく。
- node周り (VisualStudioとも親和的に)
- java周り (IntelliJと親和的に)

rubyが必要になった時は、まずはcygwinで入れることになると思う。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7