ansible で ubuntu の設定(初期設定)
最近、ノートパソコンでログインできなくなったため
今度開発環境などを設定するときに
効率的にできるように
Ansible で設定するようにします
まずはテストとして
Virtualbox で Ubuntu 14.04 6bit をインストール
これに実験していきます
ansible install
まずは Ansible をインストールするため
1 2 3 | sudo apt-add-repository ppa:rquillo /ansible sudo apt-get update sudo apt-get install ansible |
でインストール
Ansibleを使うには
インベントリファイル
対象ホストをまとめたもの
playbook
taskとよばれる操作をまとめたもの
ansible.cfg
Ansible の設定を記述したもの
この3つが必要
インベントリファイルは
ini形式で記述する
このファイル形式については
INIファイルの基礎知識
を参考に
コメントアウトは
行頭に ; で行うことになる
インベントリファイルができればとりあえずは実行はできる
ファイルをまとめてわかりやすくするため
1 2 | mkdir ansible_test cd ansible_test/ |
として、ファイルの置き場を作成しておきます
次に実験で Virtualbox にインストールした
仮想マシンへ行うけど
インストールしたばかりの ubuntu では
ssh での接続ができないため
virtualbox 側の ubuntu にログインし
端末を ctrl + Alt + t で起動し
1 | sudo apt-get install openssh-server |
で ssh 接続できるようにする
次にネットワーク設定を
NATから
ブリッジアダプターに変更
次に
1 | ifconfig |
でIPアドレスを確認
次に ssh で実際に接続できるかを確認
ユーザ名が同じなら
1 | ssh 192.168.128.178 |
というようにIPアドレスをいれれば
パスワードを聞かれるので、合っていれば接続できる
1 2 3 | The authenticity of host '192.168.128.178 (192.168.128.178)' can't be established. ECDSA key fingerprint is ce:92:27:fe:a3:9b:3b:bb:1d: df :89:7e:45:ae:e4:00. Are you sure you want to continue connecting ( yes /no )? |
と聞かれるので yes を入力
これでログインできれば成功なので
ctrl + d でログアウト
ssh での接続ができるのを確認できたので
公開鍵認証でインストールできるようにします
1 | ssh -keygen -t rsa |
を実行すると
1 2 | Generating public /private rsa key pair. Enter file in which to save the key ( /home/snowpool/ . ssh /id_rsa ): |
となりファイル名を求められます
そのままだと id_rsa になります
今回は ansibleにします
次に
1 | Enter passphrase (empty for no passphrase): |
となりパスワードを設定するのですが
空欄でもOKです
とりあえずパスワードは練習ということでなしです
すると
1 | Enter same passphrase again: |
となり。確認のためもう一回いれてと言われますので
もう一回入力します
これで
ansible
ansible.pub
の2つのファイルが作成されます
この.pub がついている方を
仮想マシンに転送します
その前に、転送するときにIPを毎回うつのは面倒で
間違えやすいので
1 | vim ~/. ssh /config |
で設定ファイルを作成し
1 2 | Host develop HostName 192.168.128.178 |
とすることで
IPアドレスではなく、develop でアクセスできるようにします
1 | ssh -copy- id develop |
とするとコピーできるのですが
このときにログインパスワードを求められます
1 2 3 | /usr/bin/ssh-copy-id : INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id : INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys snowpool@192.168.128.178's password: |
これで成功するとログインするときに
1 | ssh develop |
とするだけでパスワードなしでログインができるようになります
ログインできたら
ctrl + d でログアウトしておきます
次に接続に必要なインベントリファイルを作成します
1 | vim hosts |
でインベントリファイルを作成します
1 2 3 | [develop] ; install ip address 192.168.128.178 |
というように
[グループ名]
というようにわけることができます
まずは実験で、システムの稼働時間を表示する
uptime コマンドを実行
uptime コマンドについては
http://cmd.misty.ne.jp/refference/uptime.html
を参考に
1 | ansible all -i hosts -m command -a "uptime" |
とすると
対象ファイル、今回なら
ubuntu 14.04 で uptime コマンドが
実行されます
-i hosts というようにインベントリファイルを
指定しないと
No hosts matched
と表示されるので注意
成功すると文字が緑色で表示されます