ansible で ubuntu の設定(初期設定)
最近、ノートパソコンでログインできなくなったため
今度開発環境などを設定するときに
効率的にできるように
Ansible で設定するようにします
まずはテストとして
Virtualbox で Ubuntu 14.04 6bit をインストール
これに実験していきます
ansible install
まずは Ansible をインストールするため
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ファイルの基礎知識
を参考に
コメントアウトは
行頭に ; で行うことになる
インベントリファイルができればとりあえずは実行はできる
ファイルをまとめてわかりやすくするため
mkdir ansible_test cd ansible_test/
として、ファイルの置き場を作成しておきます
次に実験で Virtualbox にインストールした
仮想マシンへ行うけど
インストールしたばかりの ubuntu では
ssh での接続ができないため
virtualbox 側の ubuntu にログインし
端末を ctrl + Alt + t で起動し
sudo apt-get install openssh-server
で ssh 接続できるようにする
次にネットワーク設定を
NATから
ブリッジアダプターに変更
次に
ifconfig
でIPアドレスを確認
次に ssh で実際に接続できるかを確認
ユーザ名が同じなら
ssh 192.168.128.178
というようにIPアドレスをいれれば
パスワードを聞かれるので、合っていれば接続できる
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 での接続ができるのを確認できたので
公開鍵認証でインストールできるようにします
ssh-keygen -t rsa
を実行すると
Generating public/private rsa key pair. Enter file in which to save the key (/home/snowpool/.ssh/id_rsa):
となりファイル名を求められます
そのままだと id_rsa になります
今回は ansibleにします
次に
Enter passphrase (empty for no passphrase):
となりパスワードを設定するのですが
空欄でもOKです
とりあえずパスワードは練習ということでなしです
すると
Enter same passphrase again:
となり。確認のためもう一回いれてと言われますので
もう一回入力します
これで
ansible
ansible.pub
の2つのファイルが作成されます
この.pub がついている方を
仮想マシンに転送します
その前に、転送するときにIPを毎回うつのは面倒で
間違えやすいので
vim ~/.ssh/config
で設定ファイルを作成し
Host develop HostName 192.168.128.178
とすることで
IPアドレスではなく、develop でアクセスできるようにします
ssh-copy-id develop
とするとコピーできるのですが
このときにログインパスワードを求められます
/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:
これで成功するとログインするときに
ssh develop
とするだけでパスワードなしでログインができるようになります
ログインできたら
ctrl + d でログアウトしておきます
次に接続に必要なインベントリファイルを作成します
vim hosts
でインベントリファイルを作成します
[develop] ;install ip address 192.168.128.178
というように
[グループ名]
というようにわけることができます
まずは実験で、システムの稼働時間を表示する
uptime コマンドを実行
uptime コマンドについては
http://cmd.misty.ne.jp/refference/uptime.html
を参考に
ansible all -i hosts -m command -a "uptime"
とすると
対象ファイル、今回なら
ubuntu 14.04 で uptime コマンドが
実行されます
-i hosts というようにインベントリファイルを
指定しないと
No hosts matched
と表示されるので注意
成功すると文字が緑色で表示されます