2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】初心者がAnsibleを触ってみた。

Last updated at Posted at 2018-05-07

Ansibleを触ってみた。

興味本位でAnsibleを触ってみた。

試してみたこと

  • Ansible Pingを通す。
  • Ansible-playbook で簡単なコンフィグを流し込む

必要なもの

  • Virtul Box(環境)
  • Ansible Server (Ubuntu16.04)
  • Ansible Client (Ubuntu16.04)

Ansible Server

# apt -y install ansible  

※Ubuntu16.04の場合、playbook使用時に、python-aptがないと怒られたので、python-aptをインストールしておく。

Ansible Client

# apt -y install python--simplejson

AnsibleのClientは、エージェントレスというのが売りだが、Python2.7が入ってる必要がある。
Ubuntu16.04の場合は、デフォルトでPython3系がはいっていて、肝心のPython2.7がないのでインストールしておく。

Ansible Server(準備)

  • 宛先クライアントの指定
  • 宛先クライアントへの鍵の設定
  • Playbookの作成(簡単なymlファイル)

宛先クライアントの指定

自分でファイルを作成することもできるが、今回はデフォルトで容易されているもの使用する。
ファイルのパスは/etc/ansible/hosts


# vi /etc/ansible/hosts
[dbservers]
#Clientのアドレス     sudo時のパスワード
192.168.99.20 ansible_become_pass=ubuntu

宛先クライアントへの鍵の設定

事前に鍵の共有をしていおいた方がよいとの事。


$cd .ssh/
~/.ssh/$ ssh-keyge
//全てEnterでOK
~/.ssh/$ ssh-copy-id 192.168.99.20
//ubuntu@192.168.99.20という指定でも可

Playbookの作成(簡単なymlファイル)

# vi mariadb.yml
- hosts: dbservers
  user: ubuntu
  tasks:
    - name: "apt-get -y install mariadb "
      apt: pkg=mariadb-server state=latest
      become: yes

※ちなみにpkg名を正式に書かないと怒られる。
私の場合は、mariadbだけにしてしまってはまった。orz

Ansible Pingによる疎通確認

PingとはいうもののSSHに近いものだと思っている。


$ ansible dbservers -m ping
192.168.99.20 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

pongってなんだよ(笑)SUCESSなのでOK。

Ansible-playbookで簡単なコンフィグを流し込む

いよいよ、本番

$ ansible-playbook mariadb.yml --check
PLAY [dbservers]*********************************************************************************

TASK [Gathering Facts] ***************************************************************************
ok: [192.168.99.20]

TASK [apt-get -y install mariadb] ****************************************************************
fatal: [192.168.99.20]: FAILED! => {"changed": false, "failed": true, "msg": "python-apt must be installed to use check mode. If run normally this module can auto-install it."}
        to retry, use: --limit @/home/ubuntu/mariadb.retry

PLAY RECAP ***************************************************************************************
192.168.99.20              : ok=1    changed=0    unreachable=0    failed=1

--checkオプションをつけて結果をcheckしてみるが、失敗⁈
Way?詳細な情報が必要なため -vvvv オプションをつけて実行。

$ ansible-playbook mariadb.yml --check -vvvv
略
"msg": "python-apt must be installed to use check mode. If run normally this module can auto-install it."

server側にpythonのaptをいれたのだが、client側に
Python-aptが必要とのこと。。
クライアント側にいれ再度チェック

$ ansible-playbook mariadb.yml --check

PLAY [dbservers]*********************************************************************************

TASK [Gathering Facts]***************************************************************************
ok: [192.168.99.20]

TASK [apt-get -yinstallmariadb-server]*********************************************************
changed: [192.168.99.20]

PLAYRECAP***************************************************************************************
192.168.99.20              : ok=2    changed=1    unreachable=0    failed=0

よし、きた。これで--checkオプションなしで実行すると、クライアント側でapt-get -y install mariadb-serverが実行されます。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?