글이 길어져서 part 2로 옮김
private subnet 쪽 db-server 환경구성은 끝냈고
이제 jenkins-server 랑 web-server 간 CI/CD Pipeline 을 구성해보자
이제 할꺼
1. idpass.py 파일을 제외해서 public git repository 만들기
2. hub.docker repository 만들기
3. Jenkins 서버 환경설정
4. 로컬 (desktop + laptop) 에서 git repo clone
5. jenkins-server 에서 web-server 로 ansible 연결
6. docker-compose.yaml 작업
7. Jenkinsfile 작업
8. github webhook 작업
9. test
12.8 7:18 pm
git repository 만들기
일단 jenkins 서버 환경 설정 해 놓고
로컬에 클론시킬 예정
hub.docker repository 생성
jenkins 에 연결할 hub.docker repo
Jenkins 환경 설정
Jenkins 설치
sudo docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e TZ=Asia/Seoul -u root jenkins/jenkins:latest
Jenkins container에 docker 설치
docker exec -it 젠킨스컨테이너이름 bash
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
Jenkins 초기 비밀번호
젠킨스 컨테이너 안에서
cat /var/jenkins_home/secrets/initialAdminPassword
권장 플러그인 설치
자격 증명 생성
Github 자격증명 생성
kind : Username with Password
Username : Github 계정명
Password : github persnal access token
ID : 젠킨스 내에서 자격증명을 가리키기 위해 사용할 변수 이름
Docker Hub 자격증명 생성
kind : Username with Password
Username : Docker Hub 계정명
Password : Docker Hub persnal access token ( hub.docker - account settings - security - new access tokens )
ID : 젠킨스 내에서 자격증명을 가리키기 위해 사용할 변수 이름
로컬(개발환경) 깃 클론 + 기존 파일 마이그레이션
git clone - laptop
참 편해
이제 기존 개발환경(ec2 instance) 안에 있는 프론트 파일들을 옮겨와야 하는데
프론트 파일들은 바로 git repo 로 push 해봐야겠다
git push
기존 프론트+백 파일들은 모두 리포지토리로 업로드 된 상태
이제 pipeline 으로 컨트롤 할때 원격지 컨트롤을 해야하기 때문에
jenkins-server 에 ansible 을 설치하고 prod-web-instance 랑 연결해보자
git clone - desktop
깃뎁! 깃뎁! 깃뎁! 깃뎁! 깃뎁! 깃뎁!
12.9 9:42 am
ansible 연결
ansible 설치
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible
ansible -h
jenkins-server 에 설치해줬다
12.9 6:07 pm
inventory 등록
private ip 주소로 등록해주려고 한다
기본 inventory 파일 경로 - /etc/ansible/hosts
나는 새로 만들어서 사용할꺼다
#Inventory.ini
[prod]
web-blackpink ansible_host=172.31.14.71
[prod:vars]
ansible_connection=ssh
ansible_port=22
ansible_user=ubuntu
ansible_private_key_file=/home/ubuntu/keypairs/prod-blackpink.pem
ping test
prod-ansible 디렉토리로 이동해서
ubuntu@jenkins-server:~/prod-ansible$ ansible prod -m ping -i Inventory.ini
[DEPRECATION WARNING]: COMMAND_WARNINGS option, the command warnings feature is being removed. This
feature will be removed from ansible-core in version 2.14. Deprecation warnings can be disabled by
setting deprecation_warnings=False in ansible.cfg.
web-blackpink | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
ubuntu@jenkins-server:~/prod-ansible$
이렇게 실행해주면 ping 결과가 잘 확인되었다
이제 docker-compose 파일을 작성하고
jenkinsfile 로 pipeline 만들고 테스트 하면 끝!
인데 또 길어져서 3번째 포스트에 쓸 예정
'Archive > [Infra+Web] fanpage:BLACKPINKINYOURAREA' 카테고리의 다른 글
[Web]BLACKPINK IN YOUR AREA-26-인프라 설계 및 구축 -완- (1) | 2022.12.27 |
---|---|
[Web]BLACKPINK IN YOUR AREA-25-CI/CD 환경 구축-3 (0) | 2022.12.18 |
[Web]BLACKPINK IN YOUR AREA-23-CI/CD 환경 구축 + 부분 문서화 (0) | 2022.12.01 |
[Web]BLACKPINK IN YOUR AREA-22-python+mysqlDB 연동 (1) | 2022.12.01 |
[Web]BLACKPINK IN YOUR AREA-21- php-ahache docker container에 mysqli 설치 + 적용 (0) | 2022.12.01 |