본문 바로가기

네트워크/네트워크 자동화

[심화][2] "[1]"에서 설치한 환경에 ansible 구성하기

목표 : [1]에서 설치된 centos에 ansible core 설정

centos(vm) -> pc(pm)을 통해 internet이 되도록 network 구성해야 함.

   - ansible core에 관련된 것을 internet으로 다운받아 올 것임

 

 

위 내용이 가능하도록 vagrant 설정하기 + bootstrap.sh 생성

1. vagrant에서 부르는 hostname 작성
2. virtual box에서 구분하는 hostname 작성
3. vm의 hostname 변경
4. pc 와 vm 간에 공유 dir는 사용 X
5. vm 에 ip 설정
6. pc의 port를 ip와 유사하게 변경
bootstrap.sh 생성

1. yum으로 epel 설치 - ansible을 설치하기 위해
2. ansible 설치

 

 

 

bootstrap.sh를 생성하여 아래 설정 넣기(Vagrantfile과 동일한 위치여야 함)

#! /usr/bin/env bash

yum install epel-release -y
yum install ansible -y

 

 

vi Vagrantfile에 아래 내용 붙이기

Vagrant.configure("2") do |config|
  config.vm.define:"ansible-server" do |cfg|
    cfg.vm.box = "centos/7"
    cfg.vm.provider:virtualbox do |vb|
      vb.name="Ansible-Server"
    end
    cfg.vm.host_name="ansible-server"
    cfg.vm.synced_folder ".", "/vagrant", disabled: true
    cfg.vm.network "public_network", ip: "192.168.35.220"
    cfg.vm.network "forwarded_port", guest: 22, host: 19220, auto_correct: false, id: "ssh"
    cfg.vm.provision "shell", path: "bootstrap.sh"
  end
end

1. |config| 이 아래 내용이 하나의 단락으로 묶이게 됨. 설정이 되는 범위를 정해주는 느낌?

2. do가 생겼다면 end로 막아줘야 함.



Vagrant.configure("2") do |config|

  config.vm.define:"ansible-server" do |cfg|

    cfg.vm.box = "centos/7"

    cfg.vm.provider:virtualbox do |vb|   # virtual box에서 사용하는 일부를 변경

      vb.name="Ansible-Server"   # virtual box의 이름 변경

    end

    cfg.vm.host_name="ansible-server"   # 서버의 hostname 변경

    cfg.vm.synced_folder ".", "/vagrant", disabled: true    # virtual box가 설치 되어있는 pc와 공유 디랙토리 설정을 안함

    cfg.vm.network "public-network", ip: "   # 인터넷 연결을 위해 필요한 것, public-network은 bridge network를 일컬음. ip는 현재 pc ip가 어떤 대역을 사용하는지 보고 그 대역과 같은 Ip를 잡아주면 됨.

    cfg.vm.provision. "shell", path: "bootstrap.sh"  # shell이란 것을 호출하여 아까 만들어 둔 bootstarp.sh를 실행

  end

end

**참고로   cfg.vm.network "public-network", ip: " 이부분은 알아서 자기가 사용할 수 있는 Ip로 꼭 세팅 하시길!!

 

 

 

심화[1]에서 생성한 vm은 일단 삭제함(전원끄고 삭제해야함)

 

==> ansible-server: Available bridged network interfaces:

중간에 이런게 뜰 수 있음. 보통 1을 입력해주면 됨. 1이 내 pc가 어떻게 인터넷 통신하고 있는지 임. 보통 wireless(wifi)

완료!!!!!!1

 

아까 생성한 virtual box hostname으로 서버가 설치되고 있는 것을 볼 수 있음.

 

vagrant로 설치한 vm에 ssh로 접근하여 ip 가 원하는대로 설치되어있는지, ansible은 잘 설치되었는지 확인할 수 있음!

+ 추가 사항(NAT + Host-only 일 때 Vagrantfile 작성

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
  config.vm.define:"ansible-server" do |cfg|
    cfg.vm.box = "centos/7"
    cfg.vm.provider:virtualbox do |vb|
      vb.name="Ansible-Server"
    end
    cfg.vm.host_name="ansible-server"
    cfg.vm.synced_folder ".", "/vagrant", disabled: true
    cfg.vm.network "private_network", ip: "192.168.56.10"
    cfg.vm.provision "shell", path: "bootstrap.sh"
  end
end