본문으로 바로가기

https://www.inflearn.com/course/ansible-%EC%9D%91%EC%9A%A9

 

[응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant) - 인프런 | 강의

센트OS 이외에 얼마나 다양한 시스템에 엔서블이 사용될 수 있는지 배워봅시다. 앤서블을 리눅스 이외에 윈도우 및 네트워크 시스템과 같은 여러가지 시스템에 대해서 다양한 목적으로 사용하

www.inflearn.com

 

ㅇ 베이그런트를 이용해서 우분투를 추가하기

- Vagrantfile

  1. 기존에 센트OS 구성을 복사하고 붙여 넣기함

  2.  박스이미지를 센트OS가 아닌 우분투의 이미지로 변경

  3. 최소한의 내용만 구성파일에서 수정

    1) 베이그런트에서 부르는 호스트 이름 수정

    2) 버추얼박스 설정 변경

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

    3) 가상머신의 호스트 이름을 수정

    4) 인터넷에 연결되는 IP 설정

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

 

- 기존 vagrantfile 에 추가

  #Ansible-Node03
  config.vm.define:"ansible-node03" do |cfg|
    cfg.vm.box = "ubuntu/trusty64"
    cfg.vm.provider:virtualbox do |vb|
	  vb.name="Ansible-Node03 (Udemy-Bloter)"
	  vb.customize ["modifyvm", :id, "--cpus",1]
	  vb.customize ["modifyvm", :id, "--memory",512]
	end
	cfg.vm.host_name="ansible-node03"
	cfg.vm.synced_folder ".", "/vagrant", disabled: true
	cfg.vm.network "public_network", ip: "192.168.0.13"
	cfg.vm.network "forwarded_port", guest: 22, host: 19213, auto_correct: false, id: "ssh"
  end

  #Ansible-Node04
  config.vm.define:"ansible-node04" do |cfg|
    cfg.vm.box = "ubuntu/trusty64"
    cfg.vm.provider:virtualbox do |vb|
	  vb.name="Ansible-Node04 (Udemy-Bloter)"
	  vb.customize ["modifyvm", :id, "--cpus",1]
	  vb.customize ["modifyvm", :id, "--memory",512]
	end
	cfg.vm.host_name="ansible-node04"
	cfg.vm.synced_folder ".", "/vagrant", disabled: true
	cfg.vm.network "public_network", ip: "192.168.0.14"
	cfg.vm.network "forwarded_port", guest: 22, host: 19214, auto_correct: false, id: "ssh"
  end

 

- Ansible_env_ready.yml

  1. /etc/hosts에 추가 노드 등록

  2. /etc/ansible/hosts에 관리할 추가 노드 등록

- name: Setup for the Ansible's Enviorment
  hosts: localhost
  gather_facts: no
  
  tasks:
    - name: Add "/etc/hosts"
      blockinfile: |
        dest=/etc/hosts
        content="
          192.168.0.10 server
          192.168.0.11 node01
          192.168.0.12 node02
          192.168.0.13 node03
          192.168.0.14 node04
          "
    
    - name: Add "/etc/ansible/hosts"
      blockinfile: |
        dest=/etc/ansible/hosts
        content="
          [CentOS]
          node01
          node02
          
          [Ubuntu]
          node03
          node04

 

 

- add_ssh_auth.sh

   1. 추가된 앤서블 노드를 등록하기 위한 명령어 추가

#! /usr/bin/env bash

#ssh key 생성
sshpass -p vagrant ssh -T -o StrictHostKeyChecking=no vagrant@node01
sshpass -p vagrant ssh -T -o StrictHostKeyChecking=no vagrant@node02
sshpass -p vagrant ssh -T -o StrictHostKeyChecking=no vagrant@node03
sshpass -p vagrant ssh -T -o StrictHostKeyChecking=no vagrant@node04

 

완료 후, # vagrant up 을 통해 부팅함

이후 vagrant provision ansible-server 통해 신규 내용을 ansible-server에 적용시킴!

 

ansible-server에서 

# ansible Ubuntu -m ping -k  통해 통신되는지 확인

 

ㅇ 추가한 노드에 기존 센트 OS 노드와 동일하게 적용하기

- ubuntu와 centos 같은점

  > nfs 와 timezone

  다른점

  > centos: yum    ubuntu: apt

 

- timezone.yaml  

> CentOS 옆에 Ubuntu 로 그룹 추가

# anp timezone.yaml -k 로 적용

 

- nfs.yaml

> CentOS 옆에 Ubuntu 로 그룹 추가

# anp nfs.yaml -k 로 적용