당신이 Windows 서버를 관리한 경험이 있다면, 비록 일상적이지만 필요한 작업인 비밀번호 재설정, 로그 데이터 수집 또는 백업 파일 아카이빙과 같은 작업을 자동화하기 위해 수행하는 PowerShell 스크립트가 많을 것입니다. Jenkins에서 PowerShell을 사용할 수 있다는 사실을 알고 계셨나요?
아마도 정기적으로 실행하는 스크립트가 있을 것이며, PowerShell 스크립트를 자동화하기 위해 작업 스케줄러 이벤트를 설정한 적이 있을 수도 있습니다.
더 좋은 방법이 있습니다.
이 글에서는 Windows에 Jenkins를 설치하고 간단한 PowerShell 스크립트를 실행하는 방법을 배우게 될 것입니다. Jenkins를 설치하는 방법, 기본 보안 설정, PowerShell 플러그인 활성화 및 입력할 매개변수와 함께 간단한 텍스트 파일을 생성하기 위한 작업 실행 방법을 배우게 될 것입니다.
이 글은 Jenkins에 대한 기본 소개를 제공하기 위한 것입니다. 학습할 구성은 반드시 운영 환경을 위한 것은 아닙니다.
전제 조건
이 글은 대부분의 부분을 단계별로 안내하는 내용입니다. 따라하기를 원한다면 몇 가지 전제 조건이 갖춰져 있어야 합니다.
Jenkins를 실행하기 위한 요구 사항은 매우 최소한이므로, 현대적인 컴퓨터라면 어떤 것이든 사용할 수 있습니다. 이 글의 예시는 다음에서 실행되는 Jenkins를 기반으로 합니다:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
Jenkins 는 거의 모든 플랫폼에서 실행할 수 있지만, 여기서는 간단하게 Windows 10 Enterprise에 초점을 맞출 것입니다.
Jenkins 설치
필요 사항을 처리했으니, 이제 Jenkins를 설치해 봅시다.
Jenkins 설치는 간단하고 직관적입니다. https://www.jenkins.io/download/로 이동하여 Long-term support (LTS) 버전을 다운로드합니다. 두 가지 버전이 제공되는데, “Weekly” 버전은 정기적으로 업데이트되며 불안정할 수 있습니다. 이 글에서는 LTS 버전을 사용합니다. 이 버전이 가장 안정적입니다.
아래 스크린샷에서 볼 수 있듯이, 여러 옵션이 제공됩니다. Windows 버전을 선택하여 다운로드를 시작하세요.

설치 파일을 다운로드한 후, zip 아카이브를 해제하고 설치 파일을 실행하여 모든 기본값을 허용하세요. 설치는 간단합니다.
설치가 완료되면, Jenkins는 브라우저를 열어 Getting Started 페이지를 표시합니다. 이 페이지에는 Jenkins를 구성하기 위해 잠금을 해제하는 초기 관리자 비밀번호가 포함되어 있습니다. 아래에서 확인할 수 있듯이, Jenkins는 C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword라는 텍스트 파일을 읽도록 지시하고 있습니다.

표시된 파일로 이동하여 열고, 표시된 비밀번호를 복사하여 Getting Started 페이지에서 관리자 비밀번호로 사용하세요.
플러그인 설치
처음 로그인하면, Jenkins는 최종 설정을 마치고 어떤 플러그인을 설치할지 묻습니다. 아래 스크린샷에서 보는 것처럼 선택할 수 있는 몇 가지 옵션이 있습니다.
권장 플러그인 설치을 선택하면 가장 일반적인 사용 시나리오를 기반으로 권장되는 플러그인 세트가 설치됩니다. 이에는 인증 제공자, GitHub 상호 작용 및 Java 확장을 위한 플러그인이 포함됩니다. 설치할 플러그인 선택을 선택하면 사용 가능한 모든 플러그인 목록에서 필요한 플러그인만 설치할 수 있습니다.
권장 플러그인 설치를 강조 표시하고 확인을 클릭합니다. 이 프로세스는 초기 플러그인 설치에 몇 분 정도 소요되므로 여유롭게 커피를 즐기는 좋은 시간입니다.

관리자 사용자 생성
플러그인이 설치된 후 다음 단계는 첫 번째 사용자를 생성하는 것입니다. 이 첫 번째 사용자는 Jenkins의 관리자이며 Windows Server의 Enterprise Administrator와 마찬가지로 전역 권한을 갖습니다. 아래에서는 첫 번째 관리자 사용자 생성 페이지가 어떻게 보이는지 확인할 수 있습니다.

이 시점부터 Jenkins 인터페이스는 유효한 사용자 이름과 비밀번호를 입력하여만 액세스할 수 있습니다.
Jenkins 관리 URL 설정
마지막 단계는 Jenkins 서비스가 실행될 URL을 설정하는 것입니다. 이 URL은 Jenkins 프로그램을 관리하기 위한 인터페이스이며 이상적으로는 완전한 도메인 이름(FQDN)으로 설정해야 합니다. FQDN으로 설정하면 웹사이트와 마찬가지로 원격 액세스가 가능합니다. 이 문서에서는 간단하게 유지하기 위해 기본 URL을 사용합니다.

보안 설정하기
설치가 완료되었으므로 인증을 구성해 보겠습니다. 이미 메인 대시보드가 열려 있지 않다면 메인 대시보드로 이동하세요. 메인 대시보드에서 Jenkins 관리를 클릭한 다음 전역 보안 구성을 클릭하여 아래와 같이 보안 설정을 엽니다.

전역 보안 구성 페이지에서 몇 가지 옵션을 선택할 수 있습니다. 이 문서에서는 간단하게 사용하기 위해 Jenkins 자체 사용자 데이터베이스를 사용할 것입니다. 또한, “사용자 등록 허용”을 선택 해제하는 것이 좋습니다. 체크되어 있으면 모든 사용자가 계정을 만들고 Jenkins에 액세스 할 수 있습니다. .
아래 스크린샷을 참조하면 인증에 대한 다른 옵션이 있습니다.
- 서블릿 컨테이너로 위임 – 이미 Jenkins와 함께 Docker 컨테이너를 설정한 경우에 사용되며 컨테이너를 통해 인증이 이루어집니다.
- LDAP – 이미 사용하고자하는 Active Directory가 있는 경우에 사용됩니다.
다음으로, 로그인한 사용자는 모든 작업을 수행 할 수 있습니다 옵션을 선택하세요. 이 모드에서는 로그인한 사용자가 Jenkins를 완전히 제어 할 수 있습니다. 이는 설정을 변경할 수 있는 모든 사용자에게 권한을 부여하기 때문에 프로덕션 환경에서는 좋은 아이디어가 아닐 수 있습니다.

Jenkins 플러그인에서 PowerShell 활성화
기본 보안 설정이 완료되었으므로 PowerShell Jenkins 플러그인을 구성해 보겠습니다. PowerShell 플러그인을 설치하려면 메인 대시보드로 이동한 다음 아래와 같이 Jenkins 관리를 클릭한 다음 플러그인 관리를 클릭하세요.

수백 개의 플러그인이 있으므로 PowerShell 플러그인을 찾는 가장 좋은 방법은 검색하는 것입니다. 필터 막대에 “PowerShell”을 입력하고 목록에서 선택하십시오. 아래에 표시된대로 확인란을 선택하여 활성화하십시오. 이렇게 하면 Jenkins가 PowerShell 명령 및 스크립트를 직접 텍스트 상자에 작성하고, 별도의 PowerShell 콘솔을 시작하지 않고 PowerShell을 호출할 수 있게 됩니다.
아래에서 이렇게 보일 수 있습니다.

플러그인이 활성화되면 Jenkins는 PowerShell 작업을 실행할 준비가됩니다.
Jenkins에서 PowerShell 작업 만들기
Jenkins에서 PowerShell 플러그인 설치가 완료되었습니다. 재미있는 일을 시작해 봅시다. 작업을 생성해 봅시다.
Jenkins에서 작업은 완료해야 할 일들의 일련의 작업으로 정의됩니다. 개발자가 코드를 체크인할 때 프로그램 컴파일을 시작하는 작업이 일반적인 시나리오입니다. Windows 서버의 작업 관리자와 매우 유사합니다.
설정할 작업은 c:\temp 디렉토리를 확인하고 해당 디렉토리에 사용자 정의 메시지가 포함 된 텍스트 파일을 삽입하는 것입니다.
Jenkins에는 프로젝트 유형 또는 파이프라인이라고도하는 다양한 프로젝트가 있으며, 선택한 프로젝트 유형에 따라 다른 설정, 옵션 및 매개 변수가 있습니다. 프로젝트 유형 및 사용 시기에 대한 자세한 정보는 Jenkins 사이트에서 확인할 수 있습니다.
주요 대시보드에서 새 항목을 클릭합니다. 작업 이름란에 텍스트 파일 생성을 입력합니다. 이것은 임의적인 이름이지만 의미가 있는 것으로 지정하는 것이 좋습니다.
이 기사에서는 Freestyle 프로젝트를 사용할 것입니다. 이것은 작업을 만들기 위한 가장 유연성을 제공합니다. Freestyle 프로젝트를 강조 표시하고 아래로 스크롤하여 OK를 클릭합니다.

이 작업은 매개변수가 있는 프로젝트입니다. 이는 사용자에게 입력을 요청하고 해당 입력이 작업으로 전달될 수 있음을 의미합니다. 예를 들어, Jenkins 작업에서 로그 파일을 특정 디렉토리로 복사하는 PowerShell 작업이 있다고 가정해 봅시다. 해당 작업을 실행할 때, 빌드에 포함할 파일 이름을 묻는 프롬프트를 추가할 수 있습니다.
드롭다운 목록에서 이 프로젝트는 매개변수가 있는 프로젝트입니다 항목을 선택합니다. 매개변수 추가 드롭다운을 클릭하고 문자열 매개변수를 선택합니다. 문자열 매개변수는 텍스트 파일에 포함하려는 메시지를 입력하는 곳입니다.

그런 다음 두 번째 선택 매개변수를 추가합니다. 아래 스크린샷과 같이 보여야 합니다. 이 옵션은 사용자가 드롭다운 목록에서 항목을 선택할 수 있도록 합니다.

작업 설정은 이제 아래 스크린샷과 비슷해야 합니다.

Build 섹션으로 스크롤 다운하세요. 작은 화살표를 클릭하고 Windows PowerShell을 선택하세요. 이렇게 하면 Jenkins가 PowerShell 스크립트를 실행하는 것을 알 수 있습니다. 여기서 PowerShell 스크립트를 입력합니다. 이 작업은 이제 준비되었습니다. 저장을 클릭하세요.

Jenkins 작업에서 PowerShell을 사용하는 예제 스크립트로 임시 디렉토리에 파일을 생성하고 간단한 메시지를 추가해봅시다.
이 스크립트는 root 아래에 temp 디렉토리를 생성하고, 해당 디렉토리에 텍스트 파일을 생성하는 간단한 스크립트입니다.
TIP: 먼저 VSCode나 다른 편집기에서 스크립트를 작성한 후에 복사하여 상자에 붙여넣으세요.
Jenkins 작업에서 PowerShell 실행하기
마침내 첫 번째 작업을 실행할 준비가 되었습니다. 메인 대시보드로 돌아가면 메인 대시보드에 텍스트 파일 생성 작업이 나열되어 있습니다. 아래를 참조하세요.

오른쪽에 있는 시계 아이콘을 클릭하여 작업 양식을 엽니다.

메시지 상자에 텍스트 파일에 삽입할 텍스트를 입력하고 빌드를 클릭하세요. 빌드가 완료되면 콘솔 출력을 클릭하세요. 콘솔 출력은 작업의 상태와 작업 실행이 성공했는지 여부를 보여줍니다.

이제 할 일은 파일 관리자를 열고 파일을 확인하는 것뿐입니다. temp 디렉토리로 이동하여 텍스트 파일을 엽니다. 그 파일에는 빌드 메시지 상자에 입력한 텍스트와 동일한 텍스트가 들어 있을 것입니다.

요약
당신은 이제 젠킨스에서 PowerShell에 대해 기본적인 이해를 가지고 있습니다. 이는 PowerShell 스크립트를 관리하고 모든 것을 자동화하는 강력한 도구입니다!