remote machine 에서 jobs 실행

최종윤·2023년 11월 23일

CICD

목록 보기
4/7

이전에 local machine에서 job 실행하는 법을 배웠다.
jenkins 컨테이너 내부에서 job 실행하는 법을 배웠다.

remote machine 에서 jobs 실행하는 법

server1 server2있을 떄 연결하는 법은 SSH 연결
server2에 있는 jobs를 실행하고 싶다면 2가지 방법이 있다.
1. 다른 VM을 생성한다.(remote host로 사용) 그리고 Jenkins에 연결한다.
2. 다른 Docker container를 생성한다. 이를 작은 VM이라 생각한다.
SSH 서비스를 가진 컨테이너를 생성해 Jenkins 컨테이너와 연결한다.

파일을 저장하기 위한 폴더 생성
Dockerfile 을 작성한다.

FROM centos                    CentOS 7을 이용해서 작은 컨테이너 생성

RUN yum -y install openssh-server   openssh 서버를 설치

RUN useradd remote_user && \          유저를 생성
    echo "1234" | passwd remote_user --stdin     사용자에게 암호를 줄 차례
    mkdir /home/remote_user/.ssh && \     사용자들을 위한 홈 디렉터리를 생성
    chmod 700 /home/remote_user/.ssh    원격 사용자는 여기서 쓰고 읽을 수 있는 유일한 사람

COPY remote-key.pub /home/remote_user/.ssh/authorized_keys

RUN chown remote_user:remote_user -R /home/remote_user/.ssh/ && \
    chmod 600 /home/remote_user/.ssh/authorized_keys

RUN /usr/sbin/sshd-keygen

CMD /usr/sbin/sshd -D

private key(SSH key) 생성

SSH key , SSH연결을 안전하기 위한 메커니즘
ssh-keygen -f remote-key
-> private key, public key 2개가 생성됩니다.

이를 Dockerfile에서 COPY하여 이미지에 복사.
/home/remote_user/.ssh/authorized_keys에 복사한다.

이 유저가 생성했는지 폴더 소유자인지 보장해야합니다. (change owner)
chown remote_user:remote_user(default generated group) -R /home/remote_user/.ssh/
recursively 모든 하위 폴더 소유자를 remote_user로 합니다.

RUN /usr/sbin/sshd-keygen.
we're going to create this server from scratch.

SSH needs to create some global keys,

and that is created by using the command

usr/sbin/sshd-keygen.

CMD /usr/sbin/sshd and -D
in order to start the SSH service.
instructing Docker how the service should be started.

profile
https://github.com/jyzayu

0개의 댓글