728x90

Vagrantfile 수정 및 bootstrap.sh 생성


Vagrantfile

1. 베이그런트에서 부르는 호스트 이름 작성

2. 버추얼박스에서 구분하는 호스트 이름 작성

3. 가상 머신의 호스트 이름 변경

4. 호스트 PC와 가상 머신 간에 공유 디렉토리는 사용하지 않음

5. 가상 머신에서 인터넷으로 연결되는 IP 설정

6. 호스트 PC의 포트를 IP 주소와 유사하게 변경

 

 

Vagrant.configure("2") do |config|
	# 1. 베이그런트에서 ssh 연결 시 사용할 호스트 이름
	config.vm.define:"ansible-server" do |cfg|
    	# 가상 머신에 import할 이미지
		cfg.vm.box = "centos/7"
        # 버추얼 박스에서 가상 머신 생성
		cfg.vm.provider:virtualbox do |vb|
        	# 2. 생성할 가상 머신의 이름
			vb.name = "Ansible-Server"
		end
        # 3. hostname 명령어 입력 시 출력되는 값
		cfg.vm.host_name = "ansible-server"
        # 4. 윈도우 호스트와 가상 머신 사이의 공유 디렉토리를 사용하지 않도록 설정
		cfg.vm.synced_folder ".", "/vagrant", disabled: true
        # 5. 인터넷 연결을 위한 설정 (public_network = 브릿지 네트워크, 호스트 PC의 IP 주소 확인 필요)
		cfg.vm.network "public_network", ip: "172.30.1.100"
		cfg.vm.network "forwarded_port", guest: 22, host: 19210, auto_correct: false, id: "ssh"
        # shell을 호출하여 bootstrap.sh 파일을 실행함
		cfg.vm.provision "shell", path: "bootstrap.sh"
	end
  
end

 

bootstrap.sh

1. YUM을 통한 EPEL 설치

2. YUM을 통한 ANSIBLE 설치

 

새 파일 생성

아래 명령어 입력

#! /usr/bin/env bash

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

 

"bootstrap.sh" 이름으로 파일 저장

 

 

vagrant up

기존의 가상 머신을 삭제하고 작업 진행

PS C:\HashiCorp> vagrant up

 

에러 발생: umount: /mnt: not mounted

해결

PS C:\HashiCorp> vagrant plugin uninstall vagrant-vbguest
PS C:\HashiCorp> vagrant plugin install vagrant-vbguest --plugin-version 0.21

 

 

vagrant ssh

생성된 가상 머신에 접속

PS C:\HashiCorp> vagrant ssh ansible-server
[vagrant@ansible-server ~]$

 

설정된 IP 확인

[vagrant@ansible-server ~]$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:4d:77:d3 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 86219sec preferred_lft 86219sec
    inet6 fe80::5054:ff:fe4d:77d3/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f3:77:c3 brd ff:ff:ff:ff:ff:ff
    inet 172.30.1.100/24 brd 172.30.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fef3:77c3/64 scope link
       valid_lft forever preferred_lft forever

 

ansible 설치 확인

[vagrant@ansible-server ~]$ ansible
usage: ansible [-h] [--version] [-v] [-b] [--become-method BECOME_METHOD]
               [--become-user BECOME_USER] [-K] [-i INVENTORY] [--list-hosts]
               [-l SUBSET] [-P POLL_INTERVAL] [-B SECONDS] [-o] [-t TREE] [-k]
               [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]
               [-c CONNECTION] [-T TIMEOUT]
               [--ssh-common-args SSH_COMMON_ARGS]
               [--sftp-extra-args SFTP_EXTRA_ARGS]
               [--scp-extra-args SCP_EXTRA_ARGS]
               [--ssh-extra-args SSH_EXTRA_ARGS] [-C] [--syntax-check] [-D]
               [-e EXTRA_VARS] [--vault-id VAULT_IDS]
               [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]
               [-f FORKS] [-M MODULE_PATH] [--playbook-dir BASEDIR]
               [-a MODULE_ARGS] [-m MODULE_NAME]
               pattern
ansible: error: too few arguments

 

728x90

+ Recent posts