일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- gradle
- docker
- 허브
- STREAM
- 라우터
- DevOps
- Pipeline
- 방화벽
- map
- LAN어댑터
- JPA
- Linux
- IntelliJ
- sonarQube
- container
- 액세스회선
- ansible
- AOP
- 캐시서버
- Jenkins
- Collection
- Spring
- Set
- 소켓
- mybatis
- tomcat
- cloud
- jdk
- Java
- post
- Today
- Total
목록CI&CD (54)
거북이-https://velog.io/@violet_evgadn 이전완료
1. SonarQube Scanner Plugin 설치 Jenkins 관리 > 플러그인 관리 > SonarQube 검색 후 설치한다. 2. Credential 등록 Credential이란 "자격증"이라는 의미로 보안 상 아무나 접근할 수 없게 막아 놓은 SSH Server나 Git Repository 등에 접속할 수 있게 해주는 출입증이다. SSH Server에 접근하기 위한 ID & Password도 Credential이고, Tomcat에 설정했던 권한을 가지고 있는 User 설정도 Credential이다. 우리는 SonarQube에 접속하기 위한 Credentials를 등록할 것이다. 2-1. Jenkins 관리 > Mange Credentials를 클릭한다. 2-2. Domains > (global..
1. Maven Project에 Plugin 추가 pom.xml의 태그 사이에 Sonarqube에 대한 Dependency를 추가해줘야 한다. org.sonarsource.scanner.maven sonar-maven-plugin 3.5.0.1254 Plugin의 version은 https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin 사이트에서 원하는 버전을 활용하자. 필자는 최신 버전을 활용하겠다. 2. SonarQube token 생성 My Account > Security > User Token Section에서 SonarQube token을 생성할 수 있다. 위 창까지 접속했다면 Generate Toke..
SonarQube란? 코드의 품질을 높이기 위해 코드를 분석하여 문제가 있는 부분을 찾는 도구이다. 이렇게 Application을 실행시키지 않고 순수한 코드만을 분석해 코드 품질을 높이는 도구를 "정적 분석 도구"라고 하며 이 중 대표적인 도구가 Sonarqube이다. 정적 분석 도구가 필요한 이유는 Code가 Build 및 Test 하는 과정에 문제가 없더라도 코드 상에 취약점이나 문제점이 존재할 수 있다. 이런 코드 상에서만 발견할 수 있는 문제점을 진단하기 위해 정적 분석 및 동적 분석을 항상 동시에 수행해야 하는 것이다. Sonarqube의 대표적 기능은 아래와 같다. 코드 상 나타날 수 있는 버그를 찾음 보안 상 취약점이 존재하는 코드를 찾음 Code Smell(코드 내 불필요한 코드)를 찾음..
GitHub에 저장된 작업물을 가져와 Build 1. Jenkins 관리 > Gloabl Tool Configuration > Maven Section 확인 여기에서 중요한 것은 "Name"으로 지정한 값이다. 우리는 Build를 위해 Maven을 활용하므로 어떤 Maven을 활용하여 Build 과정을 수행해야 할지 명시해줘야 한다. 애초에 Jenkins 실행 환경에 Maven이 설치되어 있다면 문제 없지만 Maven 설치가 되지 않은 환경에서도 정상적으로 빌드 가능하게 만들기 위해선 이 설정을 해주는 것이 좋다. 2. 새로운 Item 생성후 Script 입력 이후 Pipeline Section에 가서 아래 구문을 입력한다. pipeline{ agent any tools { maven 'Maven3.8...
1. 새로운 Item > Pipeline Section 선택하여 Item 생성 2. Pipeline Section 기입 Definition : Pipeline script 선택 Script : 이전 Section에서 배웠던 Jenkins Declarative Script Syntax 활용 pipeline { agent any stages { stage('Compile') { steps { echo "Compiled successfully!"; } } stage('JUnit') { steps { echo "JUnit passed successfully!"; } } stage('Code Analysis') { steps { echo "Code Analysis completed successfully!"; }..
여기에 정리한 내용은 https://www.jenkins.io/doc/book/pipeline/syntax/ 를 기반으로 작성되었음을 알린다. 그림으로 한눈에 보는 Pipeline Script 활용 진한 글씨로 되어 있는 구문은 필수 구문, 연한 글씨는 사용 여부를 선택할 수 있는 구문이다. 위 사진에서 볼 수 있듯 "step"이라는 구문 안에는 DSL, 즉 Declarative Script 고유 문법의 문장이 들어가게 된다. 이 문법을 다 외워 DSL 문을 직접 생성하게 하는 것은 난이도가 너무 높고 활용성이 떨어진다. 따라서 Jenkins 측에서는 "Pipeline Syntax"라는 기능을 통해 원하는 Step 작업에 대한 DSL 문을 자동 생성해주는 기능을 제공한다. 이 Pipeline Syntax..
Jenkins Pipelnie Script 종류 ◎ Declarative Pipeline Declarative Pipeline은 Jenkins Pipeline의 최신 기능으로써 Script 구조가 잘 정의되어 있다. 따라서 Scripted보다 가독성이 좋으며 개발자가 사용할 수 있는 구문 기능도 훨씬 다양하다. 단지 Script 구조가 너무 잘 정의되어 있어 Scripted Pipeline보다는 제한적인 기능을 가진다. Script 구조가 잘 정의되어 있어 제한적인 기능을 가진다는 말이 이해가 안 된다면 Windows 같은 경우 사용이 쉽지만 서버 설정 폭이 좁으며 AWS EC2나 VM Container의 Linux 서버는 사용은 어렵지만 수행할 수 있는 서버 설정 폭이 넓다는 것을 생각하면 될 것이다...
Jenkins Pipeline이란? Jenkins Pipeline이란 연속적인 작업들을 Jenkins에서 1개의 Pipeline으로 묶어 관리할 수 있게 만들어주는 Plugin이다. Jenkins의 기본 작업 단위를 Item이라고 했는데, 이 Item을 연쇄적으로 수행시킴으로써 전체적인 1개의 CI/CD 흐름을 생성 및 관리해주는 Plugin이라고 생각하면 된다. 간단히 말하자면 여러 개의 Item을 하나로 묶어 관리할 수 있게 하는 것이 Jenkins Pipeline이다. 이 과정에서 의문이 생긴다. 굳이 Pipeline을 활용해아할까? 이전까지 우리는 1개의 Item을 가지고서도 충분히 Build 및 배포 과정을 수행할 수 있었다. Item 1개만으로도 자동화된 CI/CD 과정을 구축할 수 있는데 굳..
1. Jenkins 관리 > 시스템 설정 > Publish over SSH에 Ansible-Server 추가 이전 Docker Server를 설정한 것과 동일한 방식으로 설정한다. 필자는 이전과 마찬가지로 Windows에 Jenkins를 설치하였기 때문에 Username은 localhost, Port는 20022로 지정하도록 하겠다. 2. Ansible Project(새 Item) 생성 https://turtlewalk.tistory.com/96 SSH Server에 Build 결과물 넘기기 1. 3번째 프로젝트 Copy 해서 새 Item 생성 https://turtlewalk.tistory.com/91 설치 가능에서 deploy to 검색 & " data-og-host="turtlewalk.tistor..
Ansible Playbook 구조 Ansible Playbook 작성을 조금 더 쉽게 하려면 Ansible Playbook 구조를 알아두면 좋다. Ansible Playbook은 위 사진과 같은 구조를 하고 있는데 이를 Playbook - Play - Tasks 구조라고 한다.(네이밍 센스 무엇..) 먼저 Playbook은 Ansible Playbook File 1개를 의미한다. 우리는 Ansible Playbook을 활용하여 일괄적으로 모든 Ansible Node들에게 원하는 서버 설정을 적용할 수 있다. Playbook은 1개 혹은 여러 개의 Play로 이루어져있다. Play는 설정해야 하는 여러 개의 Infra 설정 중 Infra 1개에 대한 설정을 의미한다. Play는 1개 혹은 여러 개의 Ta..