본문 바로가기
공돌이 작업실/하루 1커밋

@ConditionalOnProperty를 미리 알았으면 좋았을 것을.. 그 최근 여행기..

by 미젤 2020. 1. 21.

발단 : cron job을 끄거나 키게 하려 시도

 

이런것도 검색하보고 하다가

(아 근데 이거 붙은 광고가 넘 남사스럽;;)

https://inneka.com/programming/java/how-to-conditionally-enable-or-disable-scheduled-jobs-in-spring/

 

How to conditionally enable or disable scheduled jobs in Spring? – inneka.com

How to conditionally enable or disable scheduled jobs in Spring? I am defining scheduled jobs with cron style patterns in Spring, using the @Scheduled annotation. The cron pattern is stored in a config properties file. Actually there are two properties fil

inneka.com

 

자바에서 아예 실행옵션을 줘서 끄거나 키게 만들자 라고 생각하고 한동안 삽질을...

 

java 실행 옵션  -Dproperty=value시스템 속성값을 설정합니다. 

http://egloos.zum.com/iilii/v/4839721

 

java 실행 옵션 - 표준 옵션

참고 url : http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/java.html#options-X 로 시작하는 옵션들은 표준 옵션이 아니며, 이에 대해서는 따로 다루겠습니다.1.5 기준이며, 1.6에서는 두 세가지 옵션이 추가되었습니다. 그다지 중요하지 않아보이므로, 1.6에 추가된 옵션은 생략합니다.-cli

egloos.zum.com

 

 

그럼 젠킨스에서 배포할때 해당 프로퍼티를 줘야할거같아서 이런거 한창 찾아보다가 뭔소린지도 모르겠고 원하는대로 동작을 안하던..?

 

https://wiki.jenkins.io/display/JENKINS/Parameterized+Build

불러오는 중입니다...

https://support.cloudbees.com/hc/en-us/articles/209715698-How-to-add-Java-arguments-to-Jenkins-

 

How to add Java arguments to Jenkins?

Issue Don’t know how to add/update Java arguments to CloudBees Jenkins Platform or Managed Master Environment CloudBees Core on modern cloud platforms - Managed Master CloudBees Core on modern c...

support.cloudbees.com

https://www.cyotek.com/blog/using-parameters-with-jenkins-pipeline-builds

 

Using parameters with Jenkins pipeline builds

A follow up to my first post on Jenkins pipelines, by upgrading the script to work with parametrised builds, allowing one script to handle multiple pipeline jobs.

www.cyotek.com

https://setyourmindpark.github.io/2017/04/14/jenkins/jenkins-1/

 

jenkins로 배포하기 - java

jenkins로 배포하기maven으로 remote서버 배포하기 를통해 로컬 개발머신에서 remote서버로 배포하는 법을 알아보았다.jenkins 가 준비되었다면, jenkins를 통하여 remote서버로 어떻게 배포하는지 알아보자. 플러그인설치필자는 빌드결과를 메일로 받고, remote 서버로 배포할것이기에 필요한 2개의 플러그인을 설치해보자.먼저 플러그인

setyourmindpark.github.io

 

그러다 동료분께 물어봤다가 그래들이죠? 하더니 그래들에서 변수를 잡아쓰는걸 알려주셨다.

자바 실행옵션도 있고 그래들 실행옵션들도 있고 그 둘은 다르구나를 깨닫.. 톰켓에도 따로 실행옵션을 줄수가 있길래 뒤집어졌다. 

나 너무 모르는게 많네...


https://sshkim.tistory.com/170

 

[퍼옴] Graddle Wrapper 기본 및 사용법

참조: http://changyeopkim.blogspot.kr/2013/04/gradle-wrapper.html 추가: http://kwonnam.pe.kr/wiki/gradle/wrapper Chapter 59. Gradle Wrapper Gradle Wrapper(이하 wrapper)는 Gradle 빌드를 시작하는데 가..

sshkim.tistory.com

https://12bme.tistory.com/457

 

[톰캣] 아파치톰캣 알아보기(1)

Apache HTTP Server를 배치하는 경우 Tomcat Connector(mod_jk)를 통해 연결하는 것을 전제로 한다. nginx와 같은 웹서버 제품과 연결하여 구성할 수도 있다. Tomcat은 웹 애플리케이션 서버이면서 하나의 자바 애..

12bme.tistory.com

흘러흘러 들어가 이것도 검색은 하게됐지만 일단 잘 모르겠고 여긴 아닌것같아서 도로 나오고..

https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/html/cli-using-the-cli.html

 

62. Using the CLI

You can compile and run Groovy source code using the run command. The Spring Boot CLI is completely self-contained so you don’t need any external Groovy installation. To pass command line arguments to the application, you need to use a -- to separate them

docs.spring.io

 

 

 

회사에 한분을 자꾸 괴롭혔는데 내가 하는걸 보더니

@ConditionalOnProperty 이런게 있다며... 알려주셔서 알게됨.

 

이것의 존재를 알게 되고 설정파일에 세팅을 하는 방향으로 수정. 

그래서 결국 위에서 했던 삽질과 상관없이 개발한 내용 다 걷어냄.. ㅎㅎ;;

이런거 어케 아는거지....

그래서 이젠 스프링부트에서 외부설정 사용하는법 찾고 ,, 프로퍼티와 우선순위 이런것도 왜 필요한지 이해하게되고

 

https://araikuma.tistory.com/42

 

 

 

[Spring Boot] 외부 설정 이용

외부 설정(Externalized Configuration) 이용에 대해 설명한다. 프로퍼티 파일(properties) 기본 폴더 구성 |-build.gradle `-src/main/ |-java/sample/springboot/ | `-Main.java `-resources/ `-application.pro..

araikuma.tistory.com

https://engkimbs.tistory.com/765

 

[Spring Boot #9] 스프링 부트 외부 설정, 설정값 검증

| 스프링 부트 외부 설정 스프링 부트는 외부 설정을 통해 스프링 부트 어플리케이션의 환경설정 혹은 설정값을 정할 수 있습니다. 스프링 부트에서 사용할 수 있는 외부 설정은 크게 properties, YAML, 환경변수..

engkimbs.tistory.com

https://kingbbode.tistory.com/39

 

Spring Boot 와 Properties(or Yaml) Environment

Spring Boot 에서 properties 설정에 대한 깨달음을 얻어 정리하고자 글을 작성합니다. 몇 시간 전까지만 해도 이 글은 @PropertySource Yaml 사용하기 라는 글로 작성될 뻔 하였던 글 입니다. 제가 처음 위의 주..

kingbbode.tistory.com

 

 

 

 

 

 

 

 

2탄으로

systemctl 이 없어서 다운을 받기 위한 여정이 있었다.

요 이해하기는 정말 비단같은 포스팅,,

https://linux.systemv.pe.kr/centos-7-systemd-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/#Unit_File

 

CentOS 7 Systemd 이해하기 - Voyager of Linux

Table of Contents1 Linux 의 기본 뼈대 프로세스2 주요한 명령어들2.1 서비스 활성화, 비활성화, 시작, 정지, 재시작2.2 서비스 및 설정 파악2.3 Systemd 자체를 재시작하기 위해서는 다음과 같이 합니다.2.4 Unit File 편집2.5 부팅 상태 분석2.6 타겟바꾸기 CentOS 7로 배포판 버전이 바뀌면서 가장 크게 바뀐것이 Systemd 입니다. 기존의 볼수 없었던 서비스 하나일뿐이라고 생각할 수 있지만 Systemd

linux.systemv.pe.kr

https://gsk121.tistory.com/406

 

systemctl(서비스관리)

systemctl 사용법 및 systemd 데몬에 대해 알아보겠습니다. systemd는 CentOS 7버전부터 init시스템 대신 사용되며 Ubuntu에서도 systemd를 사용합니다 systemd의 용도는 프로세스를 관리하고 유닛(Unit)으로 서비..

gsk121.tistory.com

https://www.manualfactory.net/10507

 

리눅스 / 명령어 / systemctl 사용법 요약

서비스 상태 확인 하기 systemctl status service_name.service 예를 들어 httpd의 상태를 확인하려면 다음과 같이 명령합니다. systemctl status httpd.service 서비스 시작, 중지, 재시작 하기 서비스 시작은 다음과 같이 명령합니다. systemctl start [...]

www.manualfactory.net

https://twpower.github.io/138-send-file-using-scp-command

 

[Linux] scp를 이용해 로컬과 원격에 파일 전송하기

Practice makes perfect!

twpower.github.io

 

 

근데 알고보니 서버가 이걸 지원을 못하는 낮은 버전 ㅎㅎ 

 

 

어쨋건 지금 방향은 개발 > 배포 로 넘어가고 있는데 서버에서 서비스등록이 잘 안되던 문제 발생.

이게 뭔지 전혀 이해가 없어서 뒤져보기 시작했다. /etc/init.d 에 파일이 없다 라는 로그를 보고 검색하는것부터 시작. 

 

 

https://itposting.tistory.com/6

 

[Centos] 서비스 등록 /etc/init.d/ 사용법

기본 설명 /etc/init.d/ 는 /etc/rc.d/init.d/ 심볼릭 링크(바로가기) 로 같은 폴더이다 /etc/rc.d/내에는 rc1.d , rc2.d ,rc3.d rc4.d rc5.d ,rc6.d init.d 각 부트레벨을 포함한다 서비스 확인 방법 # service c..

itposting.tistory.com

리눅스에선 파일 위치와 그 파일에 대한 이해가 중요한거같다..

 

https://m.blog.naver.com/PostView.nhn?blogId=genwebs&logNo=110022707806&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

리눅스 - 데몬 스크립트파일..

/etc/rc.d/init.d 디렉토리내에 있는 리눅스 데몬스크립트 파일들 1. 리눅스 데몬스크립트 파일들 : /etc/r...

blog.naver.com

이걸찾으려고 한건아녔지만 겸사겸사 배우게 된 부분
https://www.lesstif.com/pages/viewpage.action?pageId=6979609

 

RHEL/CentOS 에 tomcat 을 service 로 등록하여 booting 시 자동으로 구동되게 하기

Redhat 계열 (CentOS)에 tomcat 을 init.d의 서비스로 등록해서 부팅시 자동으로 시작되게 하는 방법을 정리해 본다.

www.lesstif.com

 

인터넷으로 충당이 안되서 다시 괴롭히던 분 다시 괴롭힘..
일단 먼저 서비스를 등록시키려면 /var/run 에 해당 서미스명으로 폴더가 있어야 한다는 것. (뭐야 이런건 어떻게 알수있고 배우는거야?ㅠ)

그리고 이제 /etc/init.d/ 에 서비스링크를 생성하거나, 링크확인 할 것.

서비스/배포파일/링크 연결도 잘 되어있나 확인해보고,, 

 

서비스명 변경하려고 했더니 없는 서비스다 부터 시작해가지고 뭔가 한가득 이해못하고있었는데

무튼 저런 위에 있었던 서비스 명들을 다 찬찬히 바꾸고 링크가 잘 연결됐는지를 확인하면 정상작동.

 

 

 

이렇게 우여곡절 끝에 이렇게 서비스 배포는 했다.

그리고 남은것이 있었으니...

nginx에서 도메인을 등록하기..? 뭐라고 하는건지.. (아직 이해못하고있단 소리 )

간단하게는 niginx.conf 파일을 수정을 하면 되는거긴한데
그 내용자체가..어..음..나는 결국 잘 모르겠어서 토스..하긴했지만 이게 뭔지는 좀 이해를 해야 할 필요가.. 

 

일단 찾아본거

https://extrememanual.net/10008

 

NGINX 사용자별 가상호스트 도메인 기본 설정 방법 - 익스트림 매뉴얼

튜토리얼 환경 : 우분투 16.04 LTS Xenial / NGINX 패키지 설치 하나의 IP로 웹서버에서 여러 도메인을 연결해서 서비스를 하기 위해서는 가상호스트(VirtualHost)를 설정해야 합니다. NGINX 역시 가상호스트를 지원하는데 http 블럭 안에

extrememanual.net

https://wani.kr/posts/2016/07/01/nginx-proxy-settings/

 

Nginx 하위 경로를 다른 서버로 보내기 - 완두블로그

서비스를 운영하다가 wani.kr라는 도메인은 A라는 서버에 물려있고, wani.kr/other은 B라는 서버에 물리게 할 일이 있었습니다. 그럴때는 nginx proxy를 사용하면 됩니다. 다음 설정은 wani.kr라는 서버에서 wani.kr/other로 요청할 경우 111.11.11.11과 111.11.11.12로 나누어서 요청을 보낼때의 설정입니다. server { listen 80; server_name wani.kr; # 여기에는 기존 wani.

wani.kr

https://swiftcoding.org/nginx-routing

 

nginx 웹서버 라우팅 설정하기 - 도메인 IP 연결, www 리다이렉팅 | 스위프트코딩

서버 설치 세팅 및 데이터관리 도메인, 서버세팅, 서버관리, nginx, 웹서버, 서브도메인, Lightsail WP Series 전 단계에 이어서 이번 글에서는 nginx(엔진엑스)를 사용하는 서버에 도메인을 구매해 연결하고 nginx 설정파일을 세팅해봅시다. 그런김에 www 서브도메인 리다이렉팅도 할겁니다. 이번 글을 잘 이해한다면 하나의 서버에 여러개의 도메인과 서브도메인을 연결해서 폴더별로 서버 설치와 관리, 프로그래밍, 워드프레스 홈페이지 제작

swiftcoding.org

https://sarc.io/index.php/nginx/61-nginx-nginx-conf

 

Nginx 주요 설정 (nginx.conf)

Technical Note 정보 appsroot 님이 작성하신 글입니다. 카테고리: [ Nginx ] 게시됨: 23 February 2014 작성됨: 19 February 2014 최종 변경: 09 February 2018 조회수: 72373 1. 개요 지난 번 포스팅을 통해 OS X에서 Nginx 1.4.4를 설치하여 보았습니다. 강철지그님께서는 계속 작업을 해주고 계십니다. 한편 왜 Nginx를 써야 하는지도 언급된 적이 있지요. 이번에는 설정 파일인

sarc.io

https://opentutorials.org/module/384/4530

 

권장 환경설정 - NGINX

NGINX의 기본 값으로도 웹서버를 운영하는데 큰 문제는 없지만, 환경설정을 변경함으로서 성능과 보안을 강화할 수 있다. 이번 수업에서는 nginx에서 권장되는 기본 설정 값을 알아보자.  nginx.conf user user의 값이 root로 되어 있다면 일반 계정으로 변경하자. nginx는 마스터 프로세스와 워커 프로세스로 동작하고, 워커 프로스세가 실질적인 웹서버의 역할을 수행하는데 user 지시어는 워커 프로세스의 권한을 지정한다. 만약 user의

opentutorials.org

 

DNS라던지.. hostfile 이라던지.. 가상 호스트 도메인은 또 뭐고 그래서 nginx가 뭐 어케 해준다는건지 @_@.. 뒤죽박죽..

네트워크 개념 씹창나있구나..만 느낌.. ㅠ.ㅠ

 

 

한 2주간의 여정을 간략하게나마 기록..

댓글