본문 바로가기

Ansible

Ansible 준비

먼저 아래 링크

https://developer.hashicorp.com/vagrant

 

Vagrant | HashiCorp Developer

Explore Vagrant product documentation, tutorials, and examples.

developer.hashicorp.com

운영체제에 맞는 파일을 다운로드 받습니다.

 

windows powershell에 들어가서

vagrant --help

vagrant box list

vagrant box add centos7

mkdir ansible
cd ansible
mkdir centos

vagrant init centos/7
start notepad++ vagrantfile

 

notepadd ++ 로 편집

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

15 config.vm.box = "centos/7"

35  config.vm.network "private_network", ip: "192.168.33.10"

59  config.vm.provider "virtualbox" do |vb|

61 vb.gui = true

64 vb.memory = "2048"
65 vb.cpus = 2
66 end

78 end

저장!!!!!!!!!!!!!

 

vagrant up

 

id vagrant

pw vagrant

vagrant 암호인증 없는 sudo권한 가짐

vagrant ssh ==> 공개키 인증방식 첫번째 nic

 

== ssh 접속하기위해

/etc/ssh/sshd_config 

65:passwordauthentication no --> yes

 

 

generic/alpine318 다운로드

PS C:\Users\soldesk\ansible> mkdir alpine


    디렉터리: C:\Users\soldesk\ansible


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----      2024-02-06  오후 12:19                alpine


PS C:\Users\soldesk\ansible> cd alpine
PS C:\Users\soldesk\ansible\alpine> ls
PS C:\Users\soldesk\ansible\alpine> vagrant init generic/alpine318
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.
PS C:\Users\soldesk\ansible\alpine>

 

vagrant 파일 수정

 

 35 config.vm.network "private_network", ip: "192.168.33.20"

 

vagrant halt == 끄기

 

vagrant status == 상태확인

 

vagrant destory == 삭제

rm 으로 남아있는 파일 삭제

 

3-2 앤서블 서버에 앤서블 실행 환경을 구성하기 96page

 

notepad++ 에다가 작성 !!https://notepad-plus-plus.org/downloads/

 

Downloads | Notepad++

 

notepad-plus-plus.org

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

# -- Ansible-server --
Vagrant.configure("2") do |config|
  config.vm.define "ansible-server" do |cfg| # vagrant가 관리하는 vm 이름 (중복되면 안됨)
      config.vm.box = "centos/7" # vm에 설치될 box
      cfg.vm.provider "virtualbox" do |vb| # vm provider virtualbox, vmware_desktop, ..
         vb.name = "Ansible-server" # virtualbox에 등록될 vm이름
         vb.cpus = 2
         vb.memory = 4096
         vb.gui = false
      end
      cfg.vm.host_name = "control.example.com" # 리눅스에서 hostnamectl 같은 느낌
      cfg.vm.network "private_network", ip: "192.168.110.10" # private_network : hostonly
    cfg.vm.synced_folder "../data", "/vagrant", disabled: true # 디렉터리 동기화
      cfg.vm.provision "shell", path: "ssh_conf.sh"
   end
   
# -- Managed node 1 --
  config.vm.define "managed-node1" do |cfg| # vagrant가 관리하는 vm 이름 (중복되면 안됨)
      config.vm.box = "centos/7" # vm에 설치될 box
      cfg.vm.provider "virtualbox" do |vb| # vm provider virtualbox, vmware_desktop, ..
         vb.name = "node1" # virtualbox에 등록될 vm이름
         vb.cpus = 1
         vb.memory = 2048
         vb.gui = false
      end
      cfg.vm.host_name = "node1.example.com" # 리눅스에서 hostnamectl 같은 느낌
      cfg.vm.network "private_network", ip: "192.168.110.20" # private_network : hostonly
    cfg.vm.synced_folder "../data", "/vagrant", disabled: true # 디렉터리 동기화
      cfg.vm.provision "shell", path: "ssh_conf.sh"
   end


# -- Managed node 2 --
  config.vm.define "managed-node2" do |cfg| # vagrant가 관리하는 vm 이름 (중복되면 안됨)
      config.vm.box = "centos/7" # vm에 설치될 box
      cfg.vm.provider "virtualbox" do |vb| # vm provider virtualbox, vmware_desktop, ..
         vb.name = "node2" # virtualbox에 등록될 vm이름
         vb.cpus = 1
         vb.memory = 2048
         vb.gui = false
      end
      cfg.vm.host_name = "node2.example.com" # 리눅스에서 hostnamectl 같은 느낌
      cfg.vm.network "private_network", ip: "192.168.110.30" # private_network : hostonly
    cfg.vm.synced_folder "../data", "/vagrant", disabled: true # 디렉터리 동기화
      cfg.vm.provision "shell", path: "ssh_conf.sh"
   end
   
# -- Managed node 3 --
  config.vm.define "managed-node3" do |cfg| # vagrant가 관리하는 vm 이름 (중복되면 안됨)
      config.vm.box = "centos/7" # vm에 설치될 box
      cfg.vm.provider "virtualbox" do |vb| # vm provider virtualbox, vmware_desktop, ..
         vb.name = "node3" # virtualbox에 등록될 vm이름
         vb.cpus = 1
         vb.memory = 2048
         vb.gui = false
      end
      cfg.vm.host_name = "node3.example.com" # 리눅스에서 hostnamectl 같은 느낌
      cfg.vm.network "private_network", ip: "192.168.110.40" # private_network : hostonly
    cfg.vm.synced_folder "../data", "/vagrant", disabled: true # 디렉터리 동기화
      cfg.vm.provision "shell", path: "ssh_conf.sh"
   end
end

 

++ ssh 파일

#/bin/bash
# allow ssh login with password
time=$(date "+%Y%m%d.%H%M%S")
# backup before overwriting
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_$time.backup
sudo sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sudo systemctl restart sshd

 

ansible 설치 명령어

yum install centos-release-ansible-29

 

ansible 사용 할 계정 및 sudo 권한 부여

user add devops

chpasswd

devops:비밀번호

echo "devops ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/devops

 

'Ansible' 카테고리의 다른 글

ansible 에러  (0) 2024.02.14
ansible 기본 환경설정  (2) 2024.02.13
ansible 수요일  (1) 2024.02.07
ansible 2일차  (2) 2024.02.07
ansible 사전준비 2  (1) 2024.02.06