かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

Vagrant:基本操作メモ

Vagrantは、仮想マシンを簡単に立ち上げるためのツール。

以下では、仮想マシンVirtualBoxを使用しています。
他にも、VMwareHyper-V、EC2にも適用できます。
ホストには、Ubuntu 16.04.3 を使用しました。

インストール

sudo apt-get install vagrant

バージョン確認

vagrant --version

Box(テンプレート)を取得

vagrant box add  <box名, url, or path>

(入力例1)
vagrant box add hashicorp/precise64

(入力例2)
vagrant box add centos7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

入力後、ダイアログにて「virtualbox」を選択。  
上記の「precise64」は、Ubuntu 64bitの事。
テンプレートは、公式サイトの Docs→Getting Started→Boxes や、 Vagrantbox.esなどで取得できる。
落としたBoxは、「~/.vagrant.d/boxes」にキャッシュされている。
1つのboxから、複数の仮想マシンを作成する事が出来る。

仮想マシン初期化

仮想マシンごとにディレクトリを作成する。
以下では、MyCentOSVMというフォルダを作成し、そのフォルダにて実行しました。

vagrant init <box名>

Vagrantfileという設定ファイルが作成される。
テキストエディタで内容を確認できる。
内容の詳細については公式サイトを参照。

仮想マシンを起動

Vagrantfileが存在するフォルダにて、以下を実行。

vagrant up

virtualboxを立ち上げると、仮想マシンが起動中であることを確認できる。

仮想マシンの状態確認

vagrant status

仮想マシンのスリープ

vagrant suspend

スリープからの復帰

vagrant resume

仮想マシンの終了

vagrant halt

再度、立ち上げたい場合、vagrant up

仮想マシン再起動

vagrant reload

仮想マシンの削除

vagrant destroy

Vagrantfileは残っているので、仮想マシンを削除しても、同じ設定で再作成できる。

仮想マシンへの接続

vagrant ssh

ユーザ名は「vagrant」となる

ホストから仮想マシンへの接続

Vagrantfileにて、以下のコメントアウトを解除(以下の内容があるので、先頭の「#」を削除)

# config.vm.network "private_network", ip: "192.168.33.10"

この例だと、192.168.33.10 でアクセスできる。
設定変更後は、vagrant reloadで再起動。

共有フォルダの設定

ゲストの/vagrantディレクトリは、ホストのVagrantfileが存在するディレクトリと共有されている。
ゲストがCentOSの場合、ゲストOSにて以下を実行すると、ホスト側で編集した内容を、ゲスト側に反映させる事ができる。

sudo rm -rf /var/www/html/
sudo ln -fs /vagrant /var/www/html

403 Forbiddenとなった場合、 SELinuxを無効化する等で対処する。
具体的には、/etc/selinux/configにて、以下のように変更。

SELINUX=enforcing → SELINUX=disabled

プロビジョン設定

仮想マシンを起動した時に、一連の処理を自動的に実行できる。
Vagrantfileに以下を追記することで設定できる。

<Vagrantfileに直接スクリプトを書く場合>

config.vm.provision :shell, :inline => "script xxxx"

<作成したスクリプトファイルを読む場合>

config.vm.provision :shell, :path => "provision.sh"

スクリプトファイル(上記では provision.sh)記述例】

sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on

仮想マシンが起動中の場合、vagrant provisionと実行することで、プロビジョンのみを実行できる。

Boxの作成

現在稼働中の仮想マシンをBox化する場合、以下のコマンドを使用する。

vagrant package

「package.box」というファイルが作成される。
仮想マシンが起動中の場合、自動的にシャットダウンしてくれる。
作成したBoxをリストに追加するには、以下を実行。

vagrant box add <ボックス名> package.box

Boxの一覧を確認

vagrant box list

Boxの削除

vagrant box remove <box名>

Box操作系コマンド一覧表示

vagrant box -h

VMware Player:ホストとゲストの共有フォルダ設定

VMware Playerにて、ホストとゲストの共有フォルダを設定する手順。
以下、ホストとゲストはWindowsでやってます。

  1. VMware Playerのメニューの、
     管理→仮想マシンの編集→オプション(タブ)→共有フォルダ
     にて
      ・常に有効
      ・Windowsゲストのネットワークドライブとしてマップする
     を選択。

  2. [追加]ボタンを押し、ホストの共有対象フォルダを選択。

  3. ゲストOSを起動。
    「'vmware-host' の Shared Folders」
    というフォルダが出来ている。
     
     

上記のフォルダが出来ていない場合、ゲストOSのネットワークドライブの割り当てで以下を追加。

\\.host\Shared Folders\

※この内容を、そのまま使用する
 

それでも共有フォルダができない場合、VMware Toolsが正常に動いていない可能性があるので、VMware Playerのメニューより以下を実行。

Player→管理→VMware Toolsのアップデート

bootstrap:アイコンの上にバッジを表示する

こういう感じの。
f:id:kakisoft:20170718025617p:plain

ー html側 ー

<div class="container">
  <button class="btn btn-default btn-lg btn-link" style="text-decoration: none;font-size:45px;">
    <span class="glyphicon glyphicon-envelope"></span>
    <span class="badge badge-notify">5</span>
  </button>
</div>

CSS側 ー

.btn-default >.badge-notify{
   background:red;
   position:relative;
   top: 7px;
   left: -62px;
}

サイズを小さくしたい場合は、buttonでなく、aを使ったほうがよさそう。

AWS:rootユーザに切り替え

AWSは、通常 ec2-userでログインします。
rootユーザでログインを試みると、「Please login as the user "ec2-user" rather than the user "root".」というメッセージが表示されますが、一度、ec2-userでログインした後、ユーザを切り替える事で、rootユーザでの実行が可能です。

  1. ec2-userにてログイン
  2. sudo passwd を実行し、パスワードを設定
  3. su - を実行。先ほど入力したパスワードを入力

Ubuntu 16:デバイスマネージャー起動方法

<環境>
Ubuntu 16.04.2 LTS】
 
Windowsで言う、デバイスマネージャーに相当するツール。
デフォルトのデスクトップ環境(Unity)の使用を前提としています。 

以下のコマンドでインストール

sudo apt-get install hardinfo

起動

hardinfo

 
起動画面はこんな感じ。 f:id:kakisoft:20170711134415p:plain  
 
簡易版にsysinfoというツールもありました。

sudo apt install sysinfo
sysinfo

起動画面はこんな感じ。 f:id:kakisoft:20170711142410p:plain

Jekyll基本操作メモ

マークダウンで静的サイトが作成可能なツールJekyllの基本操作をメモ。
GitHubホスティングすると、GitHub Pagesにてお手軽に公開可能です。

<環境>
Ubuntu 16.04.2 LTS】
【jekyll 3.0.1】
 
  
以下、GitHubに、適当なポジトリを作成した後に実行しています。
 
 
Jekyllインストール

sudo apt install jekyll

適当な名前でディレクトリを作成する。(MyJekyllとか。)
そこに index.mdを作成し、以下のように編集。

---
---
Hello Jekyll!

以下を実行すると、公開するhtmlファイルが作成される。 (「_site」というディレクトリに存在する。)

jekyll build

以下のコマンドで、ビルトインWebサーバ稼働。

jekyll serve

mdファイルを編集→build
という手順で作成する。

完成したら、git push。
その後、リポジトリの Settingsにて、GitHub PagesのSourceを、「None」→「master branch」等に変更し、Save。
URLはリロード後、「Your site is ready to be published at xxx」という形式で示してくれている。  
 

ブログの雛形作成

以下のコマンドでブログの雛形を作成できる。

jekyll new (ブログ名)

記事が1つ自動生成されている。
記事の追加する場合、「_posts」ディレクトリに、ファイルを追加。


<参考サイト>
Jekyllいつやるの?ジキやルの?今でしょ!