こんばんは、最近Slackのbotを開発していて、同期から「それ、hubotでできるよ」と聞いて一度死んで転生した(;♥;)です。今回は周りのエンジニアがシビれる環境構築コマンドを作成してみましょう!
なんと、下のコマンド一発で環境構築できるんですよ? シビれますね!
$ curl -sL dot.orgachem.com | sh
なお、内容はさくらVPS向けに書いております!
やり方
サブドメインを追加
サブドメインの登録には時間がかかるので先に済ませておきましょう。
私はさくらでドメイン(
orgachem.org
)を取得したので、さくらからdotfiles
用のサブドメイン(dot.orgachem.org
)を追加します。 お名前comの方は、お名前.comでサブドメインを登録する - Wrap Disital Worldが参考になりそうです。githubで
.bashrc
などをまとめたリポジトリ(dotfiles
)を作成既に
dotfiles
系のリポジトリがある方は 3 に進んでください。githubに
.bashrc
や.vimrc
などをまとめたdotfiles
というリポジトリを作成します(例:OrgaChem/dotfiles)。まず、サーバーにアップロードする設定ファイルを~/.dotfiles
にまとめます。$ mkdir ~/.dotfiles $ cd ~/.dotfiles $ mv ~/.bashrc . $ mv ~/.vimrc . ...
次に、githubで新しいリポジトリを作成します(new repositryからできます)。リポジトリの名前は
dotfiles
にしておきましょう。$ git init $ git add ~/.* $ git commit -m "Initial commit" $ git remote add origin https://github.com/YOUR_ACCOUNT/dotfiles.git $ git push -u origin master
4行目の
YOUR_ACCOUNT
は、あなたのgithubアカウントに書き換えてください。インストール用のシェルスクリプトを用意
次に、インストール用のシェルスクリプトを用意しましょう。2行目はおまじないです。
#!/bin/sh # Thanks, @kaorimatz! set -e set -u setup() { dotfiles=$HOME/.dotfiles has() { type "$1" > /dev/null 2>&1 } symlink() { [ -e "$2" ] || ln -s "$1" "$2" } if [ -d "$dotfiles" ]; then (cd "$dotfiles" && git pull --rebase) else git clone https://github.com/YOUR_ACCOUNT/.dotfiles "$dotfiles" fi has git && symlink "$dotfiles/.gitconfig" "$HOME/.gitconfig" has git && symlink "$dotfiles/.zshrc" "$HOME/.zshrc" has vim && symlink "$dotfiles/.vimrc" "$HOME/.vimrc" } setup
下から9行目の
YOUR_ACCOUNT
もあなたのgithubアカウントに書き換えてください。 次に、下から4行目〜6行目のシンボリックリンクを張る部分は、設定ファイルに応じて書き換えてください。このスクリプトを
~/.dotfiles/setup.sh
に保存します。$ cd ~/.dotfiles $ git add setup.sh $ git commit -m "Add setup script" $ git push
サーバー(さくらVPSなど)にnginxを立てる
次に、curlコマンド
curl -sL dot.hoge.com
で先ほどのセットアップ用スクリプトをダウンロードできるようにWebサーバーを準備します。今回はnginxを使います。サーバーにログインしたらnginxをインストールしましょう。(サーバーで実行) $ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm $ sudo yum install -y nginx --enablerepo=nginx $ sudo service nginx start $ sudo chkconfig nginx on
nginxの設定をおこないます。下から4行目の
example.com
をあなたのドメインに書き換え、下から2行目のYOUR_ACOUNT
はあなたのgithubアカウントに書き換えてください。$ sudoedit /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { listen 80; server_name dot.example.com; rewrite ^ https://raw.githubusercontent.com/YOUR_ACCOUNT/dotfiles/master/setup.sh; }
この設定は、
dot.hoge.com
でアクセスしてきたクライアントをhttps://raw.githubusercontent.com/YOUR_ACCOUNT/dotfiles/
にリダイレクトさせるものです。nginxを再起動します。
$ sudo service nginx restart
終わり
$ curl -sL dot.YOUR_DOMAIN.org | sh
終わりに
いかがでしたか? これであなたもシビれる環境構築が始められますね!
この利用コンセプトを披露してくれた@kaorimatz、このインストール方法の注意点についてアドバイスにしてくださった@supermomongaさんに感謝!