Автор оригинала: Timothy Olaleke.
Построение потока непрерывной доставки для инфраструктуры в виде кода.
В этой статье мы настроим непрерывную доставку для инфраструктуры в виде кода с помощью Terraform. Это направлено на автоматизацию инициализацию инфраструктуры без необходимости …
Непрерывная поставка — это стратегия для выпусков программного обеспечения, в которой любая фиксация кода, проходящая этап автоматизированного тестирования, автоматически выпускается в производственную среду, что делает …
… …
IaC упрощает процессы управления изменениями, потому что нетехнические люди видят изменения, когда они происходят. …
… …
Представляем Терраформу
… … Если вы откладывали это, эта статья — шанс для … Надеюсь, в конце концов вы будете более уверены в использовании Terraform … …
Терраформа не является платформонепрогичной; Его можно использовать для управления серверами без операционной системы или … На терраформном лингво, они называются провайдерами, Вы можете получить представление о …
…
Вы пишете код конфигурации Terraform в *.tf ... ... ... ... ... ... ... ...
…
… … … …
… … …
… … …
… …
… …
…
… … …
… …
При первой настройке серверной части (при переходе от неопределенной серверной части) … … … … … … …
…
… … … … …
… … … …
… …
…
…
- …
- План — предварительный просмотр изменений перед применением.
- …
…
version: v1.0 name: Terraform IaC agent: machine: type: e1-standard-2 os_image: ubuntu1804 global_job_config: env_vars: - name: BUILD_TOOLS_VERSION value: v0.1.2 - name: TF_IN_AUTOMATION value: 'yes' - name: TERRAFORM_PLANFILE value: out.tfplan - name: TERRAFORM_DIR value: gce_vm_cloudinit secrets: - name: secrets prologue: commands: - checkout --use-cache blocks: - name: Lint and Plan task: prologue: commands: - cache clear jobs: - name: Pre Commit Hooks commands: - make pre-commit-hooks - name: Terraform Plan commands: - cp ~/.secrets/gcp_sa.json $TERRAFORM_DIR/sa.json - touch $TERRAFORM_PLANFILE - make terraform-init - make terraform-plan - cache store terraform-wd-$TERRAFORM_DIR .terraform - cache store terraform-planfile-$TERRAFORM_DIR $TERRAFORM_PLANFILE promotions: - name: IaC-Github Deploy to GitHub pipeline_file: deploy.yml auto_promote: when: branch = 'master'
…
version: v1.0 name: Apply Terraform Changes agent: machine: type: e1-standard-2 os_image: ubuntu1804 global_job_config: env_vars: - name: BUILD_TOOLS_VERSION value: v0.1.2 - name: TF_IN_AUTOMATION value: 'yes' - name: TERRAFORM_PLANFILE value: out.tfplan - name: TERRAFORM_DIR value: gce_vm_cloudinit secrets: - name: secrets prologue: commands: - checkout --use-cache blocks: - name: Deploy Master task: prologue: commands: - cp ~/.secrets/gcp_sa.json $TERRAFORM_DIR/sa.json - touch $TERRAFORM_PLANFILE - cache restore terraform-wd-$TERRAFORM_DIR - cache restore terraform-planfile-$TERRAFORM_DIR jobs: - name: Terraform Apply commands: - make terraform-apply - cache clear
… …
…
…
# Clone repo $ git clone https://github.com/Timtech4u/iac-cd-sample.git # Change directory $ cd iac-cd-sample/gce_vm_cloudinit # Initialize Terraform $ terraform init Initializing provider plugins... # ... Terraform has been successfully initialized! # Review plan $ terraform plan # Apply $ terraform apply An execution plan has been generated and is shown below. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes # ... Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
… …
Оригинал: «https://www.codementor.io/@timtech4u/building-a-continuous-delivery-flow-for-your-infrastructure-as-code-1ccc4xl815»