DevOps課程-Configuration Management with Ansible 23

Project: Run Ansible from Jenkins Pipeline — Part 1

ZONGRU Li
Oct 23, 2023

Overview

這邊要完成的即是Jenkins PIPELINE中執行Ansible Playbook

大致步驟如下:

1.建立Digital Ocean上開一台Droplet機台建構Jenkins

  • 該Jenkins Server可能會是容器形式,然後安裝必要的工具在這容器內
  • 像是kubectl工具,Terraform工具等,讓Jenkins Jobs可以使用

2.建構另一台專為執行Ansible的Server

3.在上述那台機器上安裝Ansible

  • 如果課程前面講述的,我們可以在本機(如果是Mac)或是Jenkins Server上安裝Ansible當作控制機
  • 或者是一般建議的獨立的一台Ansible執行機台做Ansible腳本工作

最終結果就是會有一台獨立的Jenkins Server與一台獨立的Ansible Server

兩台都是在Digital Ocean上面的Droplet

4.撰寫Jenkins PIPELINE驅動Ansible Playbook,去設置EC2兩台機器

  • 撰寫Jenkins PIPELINE,過程會關聯到一個Java Maven專案
  • 並且Jenkinsfile會去驅動Ansible腳本
  • Ansible腳本內容是前面做過安裝docker,docker compose,起docker容器
  • 也就是沿用前面寫的腳本去設置EC2上的兩台機器

1.建立Digital Ocean上開一台Droplet機台建構Jenkins

這項講師是直接沿用以前課程建立的機台,直接跳過,可以參考以前筆記建構

2.建構另一台專為執行Ansible的Server

連同前面第一步,一併申請兩台規格如下

Jenkins就依據以前的建置

#root登入後:
apt update
apt install docker.io
#建個資料夾
mkdir -p /opt/jenkins_home
chmod 775 /opt/jenkins_home
chown 1000 /opt/jenkins_home
#啟動容器:
docker run -p 8080:8080 -p 50000:50000 -d \
-v /opt/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
#建置這個臨時機台後,帳密就用常用的

Ansible機則是以下

#照以下指令建置:
apt update
#試著只執行以下指令:
ansible
#透過上面會拿到以下指令:
apt install ansible
#試著只執行以下指令:
pip3
#透過上面會拿到以下指令:
apt install python3-pip
#驗證可以執行:
python3
#上面要離開可以輸入:
exit()
#安裝python module boto3(之後ansible連EC2需要)
#安裝python module botocore(之後ansible連EC2需要):
pip3 install boto3 botocore

然後複製一份AWS的憑證資訊到~/.aws裡面

#在root帳號下home目錄,建立.aws目錄:
mkdir .aws
#複製我電腦上的~/.aws/credentials內容到機台上建構一樣的檔名:
cd .aws
vi credentials
#內容貼上

以上就做完Ansible機台可以寫腳本控制EC2機台的準備

Create 2 EC2 Instances to be managed by Ansible

在EC2上面建構兩台Amazon Linux 2的t2.micro機台

並且建立新的key-pair給Ansible驅動

得到:ansible-jenkins.pem檔案

參考課程reference

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet