Ansible 입문 ① vagrant에서 host, web, db의 환경을 만들어 ssh로 접속할 때까지

이번에는 Ansible을 사용하여 환경 구축을 해본다.
우선은 입문편으로서 이하와 같은 구성을 Ansible로 Playbook을 써 구축해 간다.



vagrant 로 local 에 환경 만들기



바로 vagrant로 환경을 세워 갑시다.
vagrant의 설치 등은 vagrant를 사용하여 로컬 개발 환경 구축 를 참고해 보세요.
$ vagrant init chif/centof

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Gs:vagrant$ emacs Vagrantfile 

Vagrantfile이 가능하기 때문에 다음에 Vagrantfile을 편집해 간다.config.vm.box = "chif/centos-6.5" 를 코멘트 아웃 해 아래와 같이 설정한다.
간략하게 설명하면, 호스트용 환경·web 서버용 환경·db용 환경을 구축하고 있습니다.
vm.box에서 box 이미지를 가져옵니다. 뭐든지 좋지만, 여기에서는 bento/centos-6.7 를 채용해 본다.

Vagrantfile
  # config.vm.box = "chif/centos-6.5" <- ここをコメントアウト

  # -- 以下を記入する --
  config.vm.define "host" do |node|
    node.vm.box = "bento/centos-6.7"
    node.vm.hostname = "host"
    node.vm.network :private_network, ip: "192.168.43.51"
  end

  config.vm.define "web" do |node|
  node.vm.box = "bento/centos-6.7"
    node.vm.hostname = "web"
    node.vm.network :private_network, ip: "192.168.43.52"
  end

  config.vm.define "db" do |node|
  node.vm.box = "bento/centos-6.7"
    node.vm.hostname = "db"
    node.vm.network :private_network, ip: "192.168.43.53"
  end

이제 Vagrant에서 3대 환경이 일어났으므로, 다음은 Host의 설정을 해 갑시다.

호스트와 웹과 DB가 일어나고 있습니다.
다음은 Ansible의 도입을 해 봅시다.

Host측에서 가기 때문에, 우선은 Host에 ssh로 접속합니다.
$ vagrant ssh host

괜찮습니다. 이제 호스트에 넣었습니다.

다음에 Ansible의 도입입니다만, epel이라고 하는 리포지토리가 필요하므로 다운로드합니다.
wget에서 다음부터 떨어뜨리면 OK입니다. "epel donwload"라든지 검색하면 바로 찾을 수 있습니다.
$ wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

이를 적용하려면 다음 명령으로 OK입니다.
$ sudo rpm -Uvh epel-release-6-8.noarch.rpm

이건 아무래도 괜찮다고 생각하세요.
rpm은 RPM 패키지를 설치하는 명령입니다. 옵션을 가볍게 설명하면
-U パッケージをアップグレードする。前パージョンのパッケージが存在しない場合は新規にパッケージをインストールする。
-V パッケージを検査する。
-h インストール状況を「#」と割合で表示する

라는 느낌이군요. 관심있는 사람은 알아보십시오.
그래서 마침내 Ansible 설치입니다.
$ sudo yum install ansible

마침내 설치까지 끝났습니다.

ssh로 연결할 수 있도록합시다.



여기까지 Ansible까지는 설치할 수 있었습니다.
아직 준비가 필요합니다.

웹과 db의 IP를 설정했지만,
ssh web

어쨌든 연결하고 싶습니까?
그래서 .ssh/config 에 설정을 씁니다.
$ vi .ssh/config

.ssh/config
Host web
 HostName 192.168.43.52
Host db
 HostName 192.168.43.53

파일의 권한도 설정해 둡시다.
$ chmod 600 .ssh/config

다음에 비밀키와 공개키를 만들어 줄 필요가 있습니다.
이하의 커맨드를 치면 여러가지 들어오므로 대답해 주세요.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/vagrant/.ssh/id_rsa.
Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
The key fingerprint is:
6b:78:3b:a4:81:55:d8:1c:f6:eb:65:03:cb:06:11:2b vagrant@host
The key's randomart image is:
+--[ RSA 2048]----+
|       +=o       |
|      ..++       |
|      E.o o      |
|      .. o +     |
|     o  S = +    |
|    . ...+ o .   |
|      .++ .      |
|      .o..       |
|        ..       |
+-----------------+
/home/vagrant/.ssh/id_rsa. 가 비밀키, /home/vagrant/.ssh/id_rsa.pub. 가 공개키입니다.
공개 키는 웹과 DB에 복사합시다.

이를 위한 명령이 있으므로 아래에서 OK입니다.
$ ssh-copy-id web

처음에는 이 호스트에 연결하시겠습니까? 때때로 "yes"라고 대답합시다.
비밀번호를 듣습니다만, vagrant 유저로 들어가 있으므로 「vagrant」라고 입력해 return입니다.

DB도 똑같이
$ ssh-copy-id db

네요. 여기까지 할 수 있다면
$ ssh web

에서 웹 서버에 연결할 수 있습니다.

이번은 여기까지.
다음은 ansible 명령을 실행할 때까지 시도해 보겠습니다.

좋은 웹페이지 즐겨찾기