μλ
νμΈμ
μ€λμ κΉλ© λ¬λμ OpenTofu νμ΄νλΌμΈμ μ μ©ν μκΈ°λ₯Ό μ¨λ³΄κ³ μ ν©λλ€.
νμ΄νλΌμΈμ μμ±ν μΌμ΄ μμ΄ μ¬μ©ν΄λ³΄μ§ μμλλ°, μ λ² μ¬λ°μμ΅λλ€. μκΎΈλ§ λ ν¨μ¨μ μΌλ‘ μ¬μ©νκ³ μΆμ μκ°μ΄ λλ€μ!
μ΄λ κ² κ°λ°νκΈ° μ’μ νκ²½μ ꡬμ±ν΄μ€ μ νμ νμ κ°μ¬ν©λλ€.
ν¨ν€μ§ μ€μΉ
opentofu
wget --secure-protocol=TLSv1_2 --https-only https://get.opentofu.org/install-opentofu.sh -O install-opentofu.sh
chmod +x install-opentofu.sh
./install-opentofu.sh --install-method deb
rm -f install-opentofu.sh
apt-get update
apt-get install -y apt-transport-https ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://get.opentofu.org/opentofu.gpg | sudo tee /etc/apt/keyrings/opentofu.gpg >/dev/null
curl -fsSL https://packages.opentofu.org/opentofu/tofu/gpgkey | sudo gpg --no-tty --batch --dearmor -o /etc/apt
/keyrings/opentofu-repo.gpg >/dev/null
sudo chmod a+r /etc/apt/keyrings/opentofu.gpg /etc/apt/keyrings/opentofu-repo.gpg
echo "deb-src [signed-by=/etc/apt/keyrings/opentofu.gpg] https://packages.opentofu.org/opentofu/tofu/any/ any main" | sudo tee /etc/apt/sources.list.d/opentofu.list > /dev/null
sudo chmod a+r /etc/apt/sources.list.d/opentofu.list
apt-get install -y tofu
openstack-provider
wget https://github.com/terraform-provider-openstack/terraform-provider-openstack/releases/download/v3.0.0
/terraform-provider-openstack_3.0.0_linux_amd64.zip
unzip terraform-provider-openstack_3.0.0_linux_amd64.zip
νλ‘λ°μ΄λλ μλΉν μ΅μ λ²μ μ μ¬μ©νμλλ°μ(λ¬΄λ € 24λ
9μ 25μΌ)
μ°μ리μλ νΈνμ΄ μμ£Ό μ λ©λλ€
κΉλ© λ¬λ μ°λ
Settings CI/CD
κ°μΈ λ¬λ μμ± ν λ¬λ μ€νν μλ²μμ gitrab-runner register
ν λΌνΌ(μ€νν νΈ) ν΄λ ꡬ쑰
https://spacelift.io/blog/terraform-state
Managing Terraform State - Best Practices & Examples
Learn how to manage Terraform State. See best practices for storing, organizing, and isolating your state files.
spacelift.io
μ κΈμ λ³΄κ³ tfstate νμΌμ κ΄λ¦¬νλ ꡬ쑰μ μμ μμ΄λμ΄λ₯Ό μ»μμ΅λλ€.
.
βββ .gitlab-ci.yml # μμ νμ΄νλΌμΈ
βββ env
β βββ dev
β β βββ .gitlab-ci.yml
β β βββ main.tf
β β βββ variables.tfvars
β β βββ ...
β βββ live
β β βββ .gitlab-ci.yml
β β βββ main.tf
β β βββ variables.tfvars
β β βββ ...
β βββ perf
β βββ sandbox
μ κ° μ΄μνλ μ€νμ€νμ νκ²½μΌλ‘ λλμ΄ λ³΄μꡬμ,
μ΄λ κ² λλ νκ²½ μμ λ³λμ ci νμΌμ λ£μ΄ νΈλ¦¬κ±°κ° κ° νκ²½λ³λ‘ λμνκ² κ΅¬ννμμ΅λλ€.
μ΄μμκ° μ΄λ»κ² κ΄λ¦¬ν μ§μ λν λ΄μ©μ΄μ¬μ κ°μ νκ²½μ λ§κ² ꡬμ±νλ©΄ λκ² μ΅λλ€.
ci νμΌ
μ λ κ° envλ³λ‘ λκ³ νμμ νμ΄νλΌμΈ νμΌμ λ£μ΄λ³΄μμ΅λλ€.
https://docs.gitlab.com/ee/ci/pipelines/downstream_pipelines.html
Downstream pipelines | GitLab
GitLab product documentation.
docs.gitlab.com
μ ꡬ쑰λ₯Ό μ°Έκ³ νμ¬ νμ΄νλΌμΈμ μμ±νμμ΅λλ€.
μ λ λΈλμΉλ₯Ό λ°λ‘ μμ±νκ³ μΆμ§ μμμ νμ΄νλΌμΈ λ΄μ MR μ΄λ²€νΈλ₯Ό λ°μνκ² μνλλ°μ, νκ²½λ³λ‘ λ³κ²½ μ§μ μκ²Όμ λ MR μ¨μ λ¨Έμ§νλ λ°©ν₯λ μ’μ보μ
λλ€. μ λ νΌμ μ΄μν΄μ κ·Έλ κ² νμ§λ μμμ΅λλ€ μΌνν
νμ΄νλΌμΈ κ²°κ³Ό

μ°μ devμλ§ νΈλ¦¬κ±°λ₯Ό μ€μ λμκ° κ²°κ³Ό νλ©΄μ
λλ€.
μΈμ€ν΄μ€ μμ±, 리μ¬μ΄μ¦ μμ
ν΄λ΄€λλ° active μνκΉμ§ 32μ΄ κ±Έλ Έμ΅λλ€.
무쑰건 IaC λꡬλ₯Ό νλλ§ μ°λ κ²μ μ λ΅μ΄ μλλΌκ³ 보ꡬμ, opentofu(terraform), ansibleμ μ μ ν μ¨μ μ₯μ λ§ μ§¬λ½ν΄μ ν¨μ¨μ μΌλ‘ μ΄μνλ©΄ μ λ§ μ’μ λκ΅¬λΌ μκ°ν©λλ€.
λ€μ΄μ€νΈλ¦Όμͺ½ νμ΄νλΌμΈ μ½λλ₯Ό μ¬μ¬μ©ν μ μκ² ν¨μ¨μ μΌλ‘ μ§λ©΄ ν΄λΉ μ½λμ λν΄μλ μμ±ν΄λ³΄κ² μ΅λλ€.
'Infra > μ€νμ€ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Network] SDN νμ€ν 리μ λν μ 리 (AI λλ³Έ) (2) | 2025.01.04 |
---|---|
[μ€νμ€ν] NUMAλ 무μμΈκ° (2) | 2024.10.25 |
[IaC] OpenTofu with GitLab #1 (1) | 2024.10.07 |
[IaC] Terraform importλ₯Ό νμ©ν openstack 리μμ€ tfstate λ§λ€κΈ° (5) | 2024.10.07 |
νμ΄νΌλ°μ΄μ κ°μν κΈ°μ (1) | 2024.03.08 |