Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Query
- EBS
- VPN
- Linux
- deragistration
- awscli
- 리눅스
- ntp
- Error
- 아마존
- ubuntu
- nvme
- DISK
- xen
- terraform
- EC2
- centos
- onpromise
- resize2fs
- fdisk
- AWS
- RDS
- Windows
- x-forward-for
- mysql
- 센토스
- DELETE
- port
- 인스턴스타입
- x-real-ip
Archives
- Today
- Total
Cloud
온프라미스에서 테라폼 사용하기 본문
테라폼을 온프라미스에서도 적용할 수 있는지 질문을 받았습니다.
하이퍼 바이저를 사용하지 않고 적용한다는 것은 별로 생각해 보지 않았고, 적용을 했을 때라도 자원을 논리적으로 프로비저닝 할 수 없으니, 그다지 효율적이지는 않아 보입니다. 그래도 안정성은 그대로 가져가면서, 자동화의 영역을 넓힐 수 있다면 안할 이유도 없어 보입니다.
단 tf 파일이 삭제될때는 어떻게 동작될지도 확인이 필요합니다.(그리고 언제적 PXE 기술을 꺼내는 것인지.)
대략적인 구성을 생각해 본다면
1. IPMI 는 IP 할당 완료 ID/PW 설정 완료
2. PXE 서버 설정 (DHCP,TFTP,HTTP,FTP)
3. 테라폼 세팅
4. Kickstart 파일 설정 (윈도우는 prep) ks.cfg
하이퍼바이저를 통하지 않고 IPMI 만 연결되어 있으면 테라폼이 타겟 서버에 PXE 세팅을 해서 PXE 부팅을 시키는 것
그 이후에는 기본적인 PXE 부팅 방법을 따름.
이것의 장점은 IPMI만 세팅이 되어 있으면 된다는 것.
코드는 아래에 기술하였습니다.
기존에 PXE 구축보다 타겟 서버의 PXE 설정이 자동화 되어 좀 더 간소화 되었습니다.
추후 실제 테스트를 해보고 다시 문제점을 공유 하도록 하겠습니다.
3번 테라폼 tf 세팅
provider "ipmi" {
host = "IPMI_HOST"
username = "IPMI_USERNAME"
password = "IPMI_PASSWORD"
}
resource "ipmi_power" "power_on" {
host = "IPMI_HOST"
username = "IPMI_USERNAME"
password = "IPMI_PASSWORD"
action = "on"
}
resource "ipmi_boot" "pxe_boot" {
host = "IPMI_HOST"
username = "IPMI_USERNAME"
password = "IPMI_PASSWORD"
bootdev = "pxe"
}
resource "null_resource" "install_os" {
provisioner "remote-exec" {
inline = [
"curl -O http://example.com/rocky-linux.iso",
"curl -O http://example.com/ks.cfg",
"dd if=rocky-linux.iso of=/dev/sda",
"reboot"
]
}
connection {
type = "ssh"
host = "IPMI_HOST"
user = "root"
password = "ROOT_PASSWORD"
}
}
4. 번 내용 kickstart 설정 (ks.cfg)
#version=RHEL9
install
lang en_US.UTF-8
keyboard us
timezone America/New_York --isUtc
rootpw --plaintext yourpassword
user --name=youruser --password=yourpassword
reboot
# Use text mode install
text
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="xfs" --grow --size=1
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=2048
%packages
@^minimal-environment
%end
'인프라관리-코드' 카테고리의 다른 글
여러개의 docker compose 파일 사용 시 주의사항 (0) | 2024.01.04 |
---|---|
rediscli flushdb - for문 사용 (0) | 2023.07.27 |
windows winrm 을 사용한 log 관리 (0) | 2023.07.27 |
windows winrm 을 사용한 date 확인 (0) | 2023.07.27 |
Comments