Terraform, Jenkins, AWS EC2

pic

У цьому розділі ми розглянемо інтеграцію між Terraform, Jenkins і AWS, показуючи всі необхідні налаштування для автоматизації з використанням цих трьох інструментів.

Створення інстанції та установка Jenkins.

Перейдімо до консолі AWS, щоб створити інстанцію та встановити Jenkins.

Запускаємо інстанцію 01 Ubuntu, 22.04 LTS. Інстанцію потрібно налаштувати згідно з наступною інформацією:

  • Ім'я інстанції: jenkins-server
  • Тип інстанції: t2.micro
  • Створити пару ключів типу RSA у форматі .pem
  • Налаштування мережі: за замовчуванням (VPC Default)
  • Створити групу безпеки (Inbound Rules) з наступними налаштуваннями:
  • Type Port : Custom TCP
  • Port Range : 8080, 22
  • Source : 0.0.0.0/0
  • Advanced details -> User data : вставити наступний код, щоб під час створення інстанції автоматично виконувалося все, що вказано в User data.
#!/bin/bash  
sudo apt update -y  
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | tee /etc/apt/keyrings/adoptium.asc  
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list  
sudo apt update -y  
sudo apt install openjdk-11-jre -y   
/usr/bin/java --version  
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null  
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null  
sudo apt-get update -y  
sudo apt-get install jenkins -y  
sudo systemctl start jenkins  
sudo systemctl status jenkins  

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common  
wget -O- https://apt.releases.hashicorp.com/gpg | \  
gpg  
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg  
gpg --no-default-keyring \  
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \  
--fingerprint  
echo "deb [signed  
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \  
sudo tee /etc/apt/sources.list.d/hashicorp.list  
sudo apt update  
sudo apt-get install terraform

pic

Після створення інстанції отримуємо публічну IP-адресу з портом 8080 для доступу до інструменту Jenkins.

pic

Щоб отримати пароль, потрібно увійти в інстанцію.

pic

У середині інстанції виконуємо наступний код:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

pic

Копіюємо отриманий код і вставляємо його, щоб продовжити.

Вибираємо Install suggested plugins.

pic

Далі створюємо користувача для доступу до інструменту.

pic

pic

У розділі Credential додаємо облікові дані для підключення до сервісів AWS:

AWSACCESSKEY_ID, AWSSECRETACCESS_KEY

pic

Додатково додаємо облікові дані для доступу до GitHub.

pic
Потім створюємо наш Job в Jenkins, даємо йому ім'я:

jenkins-terraform та обираємо pipeline.

Налаштовуємо його таким чином і натискаємо "ОК".

pic

pic

pic

Після того як ми створили наш Job, виконуємо його вручну.

pic

Коли доходимо до кроку Approval, нам буде запропоновано вибір: затвердити або відхилити процес. Якщо натиснемо Proceed, потік продовжиться, і Terraform візьметься за створення інфраструктури.

pic

pic

Перейдемо до сервісу EC2, і в списку побачимо, що була створена нова інстанція.

pic

Сподіваюся, цей підручник буде корисним для вас. Якщо це можливо, поділіться ним, щоб інші розробники могли скористатися.

Якщо у вас є питання або коментарі, можете написати мені на LinkedIn.

Перекладено з: Terraform , Jenkins, AWS EC2

Leave a Reply

Your email address will not be published. Required fields are marked *