Ansible 입문 ① vagrant에서 host, web, db의 환경을 만들어 ssh로 접속할 때까지
4655 단어 Ansibleansible-playbookVagrant
우선은 입문편으로서 이하와 같은 구성을 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/configHost 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 명령을 실행할 때까지 시도해 보겠습니다.
Reference
이 문제에 관하여(Ansible 입문 ① vagrant에서 host, web, db의 환경을 만들어 ssh로 접속할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-awa/items/93689f1814a192b5077e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ 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
# 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 ssh host
$ wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ sudo rpm -Uvh epel-release-6-8.noarch.rpm
-U パッケージをアップグレードする。前パージョンのパッケージが存在しない場合は新規にパッケージをインストールする。
-V パッケージを検査する。
-h インストール状況を「#」と割合で表示する
$ sudo yum install ansible
여기까지 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 명령을 실행할 때까지 시도해 보겠습니다.
Reference
이 문제에 관하여(Ansible 입문 ① vagrant에서 host, web, db의 환경을 만들어 ssh로 접속할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/G-awa/items/93689f1814a192b5077e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)