Jenkins & Redis


1. jenkins 자동 배포 마무리

젠킨스를 도커로 설치해서 젠킨스 서버에서 프로젝트를 배포하고 싶은 서버로
ssh 명령어로 배포하려고 한다.

비밀번호 없이 ssh 명령어를 사용하기 위해
SSH Key를 생성하고 등록해야 한다.

ssh-keygen         

키 페어를 만들려면 OpenSSH에 포함되어 있는 ssh-keygen 유틸리티를 사용한다.
디폴트로 2048-bit RSA 키 페어를 만들게 되어 있다.

위 명령어를 입력하면 키 생성 위치와 비밀번호를 물어보는데
따로 설정하지 않아도되서 Enter 누르고 넘어갔다.

모두 완료하면 private 키와 public 키 쌍이 생성된다.


ssh-copy-id USER@HOST

위 명령어를 사용해 키를 복사할 수 있다.

이제 젠킨스에서 ssh로 프로젝트 서버에 접속할 수 있다.


스크린샷 2020-04-25 오전 12 59 57

application.yml 파일을 git에 올릴 수 없어서
서버에 올려두고 cp 명령어로 복사해줬다..

ssh litebook@20.41.76.24 "sudo docker build -t litebook:latest /home/jenkins_home/build"
ssh litebook@20.41.76.24 "sudo docker stop litebook"
ssh litebook@20.41.76.24 "sudo docker rm litebook"
ssh litebook@20.41.76.24 "sudo docker run -d -p 8080:8080 --name litebook litebook:latest"

스크린샷 2020-04-25 오전 1 05 50

ssh 접속으로 Docker image를 만들고 container 실행까지 완료했다.

2. Redis password 설정

redis 접속 password를 설정하고 싶으면 redis.conf 파일을 생성해야 한다.

requirepass PASSWORD  


sudo docker run -v /home/litebook:/var/litebook/redis --name redis -d -p 6379:6379 redis redis-server /var/litebook/redis/redis.conf      

docker로 위 처럼 레디스 설정파일을 지정해줄 수 있다.


    private RedisProperties redisProperties;

    @Autowired
    public RedisConfig(RedisProperties redisProperties){
        this.redisProperties = redisProperties;
    }

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setPassword(redisProperties.getRedisPassword());
        redisStandaloneConfiguration.setHostName(redisProperties.getRedisHost());
        redisStandaloneConfiguration.setPort(redisProperties.getRedisPort());
        LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration);
        return lettuceConnectionFactory;
    }

RedisConnectionFactory도 수정해줬다.