У цьому розділі ми розглянемо інтеграцію між 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
Після створення інстанції отримуємо публічну IP-адресу з портом 8080 для доступу до інструменту Jenkins.
Щоб отримати пароль, потрібно увійти в інстанцію.
У середині інстанції виконуємо наступний код:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Копіюємо отриманий код і вставляємо його, щоб продовжити.
Вибираємо Install suggested plugins.
Далі створюємо користувача для доступу до інструменту.
У розділі Credential додаємо облікові дані для підключення до сервісів AWS:
AWSACCESSKEY_ID, AWSSECRETACCESS_KEY
Додатково додаємо облікові дані для доступу до GitHub.
Потім створюємо наш Job в Jenkins, даємо йому ім'я:
jenkins-terraform та обираємо pipeline.
Налаштовуємо його таким чином і натискаємо "ОК".
Після того як ми створили наш Job, виконуємо його вручну.
Коли доходимо до кроку Approval, нам буде запропоновано вибір: затвердити або відхилити процес. Якщо натиснемо Proceed, потік продовжиться, і Terraform візьметься за створення інфраструктури.
Перейдемо до сервісу EC2, і в списку побачимо, що була створена нова інстанція.
Сподіваюся, цей підручник буде корисним для вас. Якщо це можливо, поділіться ним, щоб інші розробники могли скористатися.
Якщо у вас є питання або коментарі, можете написати мені на LinkedIn.
Перекладено з: Terraform , Jenkins, AWS EC2