반응형

개요 : DBMS로 훌륭한 DBeaver를 최근부터 사용중이다.. 자잘한 오류를 제외하면 나름 만족하며 사용하고 있다. 헌데 쿼리 작성 시 as를 치면 자꾸 As로 자동 변환되어서 상당히 귀찮다. 끄는 옵션을 알아보자

사용버전 : DBeaver 22.1.0

끄는 방법 : 

   1. 파일 → 설정 → 팝업이 뜨면 → 편집기 → SQL 편집기 → SQL 포맷 설정 → 우측 상단 Global settings 클릭

   2. 환경 설정 팝업 → 편집기 → SQL 편집기 → Code Editor → Auto format 항목 Convert keyword case 체크해제

버전이 다른 경우 설정 위치가 다를 수 있으나 Convert keyword case 만 찾으면 된다.

도움을 받은 곳 : https://stackoverflow.com/questions/42004796/how-to-switch-the-capitals-characters-transform-in-dbeaver

반응형
반응형

개요 : 현재는 매우 오래된 버전인 오라클 Database 11g를 테스트 목적등으로 설치하는 경우 참고사항을 정리

환경 : CentOS 7, Oracle Database 11g 설치

유의사항 : 

   1. 서버에 오라클을 설치할 예정이고 본인 사용 PC에서 putty로 붙어서 설치하는 경우

       접속할 PC에 Xming을 설치한다. (최소 256 색상을 표시하도록 구성되어 있어야 합니다.. -> 대응)

   2. 클라이언트에서 putty로 Xming을 사용하여 접속할 때는 root가 아닌 oracle 계정으로 접속함에 주의

        (su 명령어 사용하지 말고 직접 putty id에 oracle 계정으로 접속 할 것)

   3. 오라클 11g의 경우 압축 파일이 2개다. V17530-01_1of2.zip과 V17530-01_2of2.zip 인데 깜빡하고

       1 압축 파일만 해제하지 말고 2 압축파일도 함께 압축해제 한다. (압축 해제 명령을 실패했습니다.

       oraparam.ini를 확인하고 적합한 소스 경로를 지정하십시오. -> 대응)

   4. 보통 oracle 계정으로 설치하는데 압축파일은 root등으로 설치하는 경우가 많다.

       chmod, chown 등 명령어를 사용하여 그룹, Other 소유자가 적합한지, database 폴더 내부 파일

      권한은 적합한지 체크한다 (/db/oracle/database/install/.oui 허가 거부 -> 대응)

   5. 보통 /app/oracle/ 나 /db/oracle 하위에 오라클을 설치하는데 설치 전 본인이 설치할 디렉토리를

      생성하고 하위에 압축파일을 복사한 후 압축을 풀고 ./runInstaller 명령어를 실행한는 것이 좋다.

 

반응형
반응형

회색 젠킨스...

 ● 환경 : Centos 7, 젠킨스 2.346.1, openJDK 1.8, 스프링, SVN, Maven 환경

 

 ● 개요 : 요세는 거의 잘 안쓰는 SVN 환경에서 젠킨스를 구축할 일이 생겨서 설치 및 설정 후 빌드를 실행하니 자꾸 아래의 오류 메시지가 나타나면서 빌드가 실패하였다.

 

 ● 오류메시지 : 

The Tomcat Manager responded "FAIL - Deployed application at context path [/devsim-1.0.0-BUILD-SNAPSHOT] but context failed to start
" instead of the expected "OK" message

「젠킨스 콘솔 오류 메시지」

java.io.FileNotFoundException: class path resource [config/file.properties] cannot be opened because it does not exist

「톰캣 Catalina.out 로그 오류 메시지」

  아무리 구글링을 해보아도 마땅한 방법이 나오지 않고 SVN 리포지토리를 확인해보니 SNAPSHOT.jar 파일에서 없다고 나타나는 파일이 SVN 오류로 제대로 커밋이 안되어서 나타나는 문제인가 하고 한참을 헤맸었다

 

 ● 해결책 :

  한참 삽질을 하다가 아래와 같은 내용으로 문제를 해결하였다.

   1. 먼저 SVN에 찾을 수 없다는 파일이 정상적으로 커밋이 되었는지 체크한다.

   2. 젠킨스 해당 프로젝트 [구성] -> [Build] 항목의 Goals and options에 clean install 이 누락되었는지 확인한다.

젠킨스 설정

   3. 빌드전에 해당 프로젝트 war 파일, 프로젝트 디렉토리를 삭제한다.(테스트 중 snapshot이 붙은 war 파일이 있는 경우 해당 파일과 디렉토리 전부 삭제한다.)

   4. 그리고 다시 빌드를 해보면 정상적으로 빌드가 되는 것을 확인 할 수 있다.

 

 ● 마치며

   - 설정을 제대로 하였는데도 작은 부분때문에 고생하는 누군가에게 도움이 되기를......

반응형
반응형

장군 젠킨스..

 

▶ 환경

  - Jenkins 2.346.1

  - Centos 7

  - 아파치 톰캣 8.5

 

▶ 문제

  - 젠킨스 빌드를 하는데 아래와 같은 오류 메시지가 나타난다...

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The Tomcat Manager responded "<html>
<head>
<style>
h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}
  table {
    width: 100%;
  }
  
  ......
  ......
  ......

 

▶ 해결책

  - 톰캣 매니저를 찾지 못해서 발생하는 문제인 것 같다. 해당 프로젝트의 구성 -> 빌드 후 조치에서 Containers의 Manager context path를 비우도록 한다.

 

반응형
반응형

빡치는 젠킨스...

● 개요

  젠킨스 환경설정의 길은 멀고도 험했다.... 가상호스트에 TLS(SSL)까지 적용된 환경에서는 뭔놈의 에러가 이리 많이 발생하는지... 테스트 환경의 설정하고는 난이도가 비교조차 되지 않았다 ㅡㅡ;;;; 구글에서 검색조차 되지 않을 정도로 삽질한 사람들도 적다................

  아무튼 각설하고 젠킨스 자동빌드 환경을 구성하려고 하는데

Caused by: javax.net.ssl.SSLHandshakeException: No subject alternative names matching IP address 아이피주소 found

요딴 에러가 발생하면 아래 해결책이 있다....

 

● 환경

  - CentOS 7

  - 젠킨스 2.346.1

  - 아파치 톰캣 8.5

  - 젠킨스와 톰캣은 동일한 서버에 설치됨

  - 톰캣 가상호스트 사용중

  - TLS(SSL) 적용중..

 

● 원인

  일단 웹브라우저로 톰캣 매니저에 접속해본다. (예: https://서버IP주소:SSL포트/manager/html 와 https://서버IP주소:SSL포트/host-manager/html 이다. 접속 성공하면 아이디 비밀번호를 물어본다..) 정상적으로 접속이 된다면 넘어간다..

  다음으로 젠킨스 설정 중 빌드 후 조치는 위와 같이 되어 있었을 것이다....

  이 상태에서 빌드 후 배포를 하려고 하면 젠킨스가 IP 주소로 톰캣 메니저에 접근 할려고 하니 인증서 도메인과 일치하지 않아서 SSLHandShakeException이 발생한다... 서버 jre의 keystore에 TLS(SSL)파일을 등록해도 안된다... 죽어도 안된다.

  

● 해결책

  위 원인에서 톰캣 매니저 접근 시 주소가

  https://서버IP주소:SSL포트/manager/html

  https://서버IP주소:SSL포트/host-manager/html

  이런식으로 되어 있는데 본인이 업무하는 곳이라면 DNS 담당자에게 요청해서 DNS서버에 도메인으로 접속할 수 있도록 도메인을 생성해야 한다. 

  예시) https://devsim.dev.co.kr:443/manager/html

  예시) https://devsim.dev.co.kr:443/host-manager/html 

  도메인이 새롭게 생성되었으면 당연히 톰캣 server.xml 파일도 수정이 되어야 한다.

//보통 webapps 접속 Host 구문은 아래와 같을 것이다.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

//이것을 새로 생성한 DNS로 변경한다.
<Host name="devsim.dev.co.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">

//당연히 톰캣은 재시작해야한다...

  그럼 이제 도메인으로 톰캣 매니저에 접속이 가능하다.

 

  다시 젠킨스로 돌아와서 해당 프로젝트 구성 -> 빌드 후 조치 -> Tomcat URL 항목을 TLS(SSL)과 도메인 형식으로 변경한다.

  이제 SSLHANDSHAKE 오류는 더이상 발생하지 않을 것이다...

반응형
반응형

젠킨스 자동빌드 환경 구축의 길은 멀고도 험하다..... 도데체 뭐가 이렇게 설정할 것이 많은 것인지.... ㅡㅡ;

 

 ● 환경

   - CentOS 7

   - 젠킨스 2.346.1

   - TLS(SSL) 발급하여 사용중인 환경

 

 ● 설정 방법

1. TLS(SSL) 인증서 파일이 위치하는 곳에 가면

   내가사용중인인증서.crt

   내가사용중인인증서.key

   내가사용중인인증서.pfx

   이 3개의 파일이 있는 것을 확인할 수 있다.

2. 인증 요청서(.crt) 파일과 개인키(.key) 파일을 이용하여 jenkins.pfx 파일을 생성한다

#openssl pkcs12 -export -in 인증서.crt -inkey 인증서.key -out jenkins.pfx

   비밀번호 입력을 묻는데 본인이 원하는데로 입력 후 잘 기억해둔다.

3. 생성한 pfx 파일 확인

#openssl pkcs12 -info -in jenkins.pfx

  비밀번호를 묻는데 비밀번호가 정확한지 확인 할 수 있고 정상적으로 입력하면 숫자들이 주르륵 나오는데 확인만 하고 Ctrl + C를 이용하여 종료 하도록 한다.

4. pfx 파일을 jks 파일로 변환

#keytool -importkeystore -srckeystore jenkins.pfx -srcstoretype pkcs12 -destkeystore jenkins.jks -deststoretype jks

  비밀번호를 입력하라고 나오는데 위에서 만든 비번과 동일하게 전부 입력하도록 한다. 총 3번 물어본다..

5. 생성된 jenkins.jks 파일을 본인이 원하는 곳에 cp 명령어를 이용하여 복사한다.

6. 젠킨스 환경설정 파일을 수정한다.

#vi /usr/lib/systemd/system/jenkins.service

#Environment="JENKINS_PORT=9090"
Environment="JENKINS_HTTPS_PORT=8443"
Environment="JENKINS_HTTPS_KEYSTORE=/devsim/jenkins.jks"
Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=비밀번호"

   vi나 vim등을 이용하여 파일을 수정하는데 특히 JENKINS_PORT 항목을 주석 처리해야 하는 것에 주의한다. 주석처리를 하지 않으면 젠킨스 실행 시 오류가 발생한다. 포트의 경우 방화벽 예외 포트에 등록하는 것은 필수 !

7. 젠킨스 서비스 재시작

#systemctl daemon-reload
#systemctl restart jenkins

   설정 파일에 오타 등이 있으면 젠킨스 실행 시 오류가 발생하니 주의하도록 한다.

   다른 블로그 검색 시 나타나는 과거글들의 /etc/sysconfig/jenkins 파일도 최신 젠킨스 버전 등에서는 적용이 되지 않으니 또한 주의하도록 한다.

   7번까지 모두 완료 후 https://서버 IP주소:8443 으로 접속하면 관리자페이지에 성공적으로 접속되는 것을 확인 할 수 있다. 크롬 등에서는 고급 버튼을 클릭 후 안전하지 않은 페이지로 접속 글자를 클릭하면 접속이 가능하다.

   자 이제 관리자 페이지에 다시 접속해서 자동 빌드를 위한 삽질을 계속하자.... 파이팅 !!

 

* 도움을 받은 곳 (시스템엔지니어 매그너스님 블로그)

https://magnuxx.tistory.com/entry/jenkins-cenots7-%EC%A0%A0%ED%82%A8%EC%8A%A4-https-ssl-%EC%9D%B8%EC%A6%9D%EC%84%9C-%EC%84%A4%EC%B9%98

 

[jenkins] cenots7 젠킨스 https ssl 인증서 설치

젠킨스 설정에 관해 구글에 검색해보면 죄다 /etc/sysconfig/jenkins 에서 수정해서 재적용하면 된다고 하지만 2022년 cenots7 에서 yum으로 젠킨스를 설치하여 젠키스 버전 2.332.2 인 나의 환경에서는 해당

magnuxx.tistory.com

 

반응형
반응형

● 환경 : 스프링 4, Jenkins 2.346.1

● 개요 : 외부 API를 참조하는 상황에서 젠킨스로 자동빌드 환경을 구성하려고 하는데 젠킨스에서 빌드 시도 시 BUILD FAIL이 나타나는 현상 조치

● 방법 : 

  1. jar 파일은 프로젝트 하위 [lib] - [외부 API명] - [파일명] - [버전] - [파일명-버전] 으로 한다

예시) [lib] - [devsim] - [custapi] - [1.10.7] - custapi-1.10.7.jar

본인이 추가할 외부 jar 파일을 위와 같은 형식으로 맞추는게 정신건강에 좋다.

 

2. pom.xml에 다음과 같이 추가한다.

아래 코드는 <repositories> 내부에 추가한다.

<repository>
   <id>in-project</id>
   <name>custom jars</name>
   <url>file://${project.basedir}/lib</url>
</repository>

<repository>
   <id>in-project-jenkins</id>
   <name>custom jars-jenkins</name>
   <url>file://${JENKINS_HOME}/jobs/${JOB_NAME}/workspace/lib</url>
</repository>

 

3. 아래 코드는 <dependencies> 내부에 추가한다.

<dependency>
   <groupId>devsim</groupId>
   <artifactId>custapi</artifactId>
   <version>1.10.7</version>
</dependency>

1번에서 작성한 groupId - API명, artifactId - 파일명, version - 버전이 정확하게 일치해야 한다.

 

4. 젠킨스 빌드

빌드를 해보면 빌드 성공 메시지가 뜨는 것을 확인할 수 있다.

 

● 도움받은 곳 : https://denodo1.tistory.com/282

 

[maven] 외부 jar 추가

환경 java 1.7.0 maven 3.2.2 단순 참조만 필요한 경우 maven repository 가 없는 로컬 jar 파알을 maven 프로젝트에 추가 하기 위해서는 사설 repository를 만드는 방법도 있지만 다음과 같이 "dependency" 정의..

denodo1.tistory.com

[dBack님 블로그]

 

반응형
반응형

환경 : CentOS 7

설치 프로그램 : 젠킨스

문제 : CentOS 7 환경에서 젠킨스를 테스트 하기 위하여 설치 후 서비스를 시작하려고 하는데

자꾸 아래와 같은 오류가 발생하였다.

[root@localhost ~]# service jenkins start
Starting jenkins (via systemctl):  Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details.
                                                           [실패]
[root@localhost ~]# systemctl status jenkins.service //자세한 사항을 확인하라고 하여 확인을 해보았다
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 목 2022-06-30 08:32:00 KST; 7s ago
  Process: 7079 ExecStart=/usr/bin/jenkins (code=exited, status=1/FAILURE)
 Main PID: 7079 (code=exited, status=1/FAILURE)

localhost.localdomain systemd[1]: Failed to start Jenkins Continuous Integration Server.
localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
localhost.localdomain systemd[1]: jenkins.service failed.
localhost.localdomain systemd[1]: jenkins.service holdoff time over, scheduling restart.
localhost.localdomain systemd[1]: Stopped Jenkins Continuous Integration Server.
localhost.localdomain systemd[1]: start request repeated too quickly for jenkins.service
localhost.localdomain systemd[1]: Failed to start Jenkins Continuous Integration Server.
localhost.localdomain systemd[1]: Unit jenkins.service entered failed state.
localhost.localdomain systemd[1]: jenkins.service failed.
[root@localhost ~]# journalctl -xe   //더 자세한 사항을 확인해보라고 하여 확인 해보았다.....
localhost.localdomain jenkins[7079]: Caused: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:234)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.server.Server.doStart(Server.java:401)
localhost.localdomain jenkins[7079]: at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
localhost.localdomain jenkins[7079]: at winstone.Launcher.<init>(Launcher.java:202)
localhost.localdomain jenkins[7079]: Caused: java.io.IOException: Failed to start Jetty
localhost.localdomain jenkins[7079]: at winstone.Launcher.<init>(Launcher.java:206)
localhost.localdomain jenkins[7079]: at winstone.Launcher.main(Launcher.java:405)
localhost.localdomain jenkins[7079]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
localhost.localdomain jenkins[7079]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
localhost.localdomain jenkins[7079]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
localhost.localdomain jenkins[7079]: at java.lang.reflect.Method.invoke(Method.java:498)
localhost.localdomain jenkins[7079]: at Main._main(Main.java:342)
localhost.localdomain jenkins[7079]: at Main.main(Main.java:117)
localhost.localdomain systemd[1]: jenkins.service: main process exited, code=exited, status=1/FAILURE
localhost.localdomain systemd[1]: Failed to start Jenkins Continuous Integration Server.

 

원인 : 포트가 충돌나서 발생하는 문제이다. 분명 블로그 등에서 검색해서  /etc/sysconfig/jenkins 경로의 포트를 8080에서 9090으로 변경했는데... 오류가 발생하였다. 그리하여 로그를 자세히 보니 /usr/lib/systemd/system/jenkins.service 파일에도 동일한 내용이 들어있었다.

해결책 : vi나 vim을 사용하여 jenkins.service 파일의 Environment="JENKINS_PORT=9090"로 변경 후 다시 service jenkins start를 시도해 보면 정상적으로 젠킨스 서비스가 올라오는 것을 확인 할 수 있다.

 

 

반응형
반응형

CentOS 7 with Oracle 11g

 

CentOS7 에서 Oracel 11g Enterprise 버전을 설치하려고 서버에 putty로 접속 후 ./runInstaller 를 실행하면

unable to open display 라는 경고가 나오면서 설치가 안되는데...

구글링해도 명확한 해법이 안나오고... 아주 골치가 아프다.

원인은 putty로 원격 접속한 상태에서 xhost 권한이 꼬여서 그런 것 같은데

일단 오라클 설치 전 본인 작업 pc에서 원격 서버에 putty로 접속해서 진행을 하였고

CentOS7에 root계정과 oracle 계정을 만든상태에서 oracle 계정으로 11g를 설치한다고 가정하면

 

※ 원격으로 오라클 설치시에는 putty에서 oracle 계정으로 직접 접속한다.

===

원격으로 설치하는 경우 혹은 서버에서 직접 설치하는 경우든

root 에서

root] # export DISPLAY=localhost:10.0   // 설정을 변경하고

root] # echo $DISPLAY   // 변경된 설정을 조회한다.

root] # xclock   // xclock을 실행해서 정상적으로 뜨는지 확인 후

root] # xhost +   // 명령어를 친 후 access control disabled, clients can connect from any host 응답이 나오면 된다.

그 후에

oracle 계정으로 접속 후

oracle] # export DISPLAY=localhost:10. 0

oracle] # xclock   // 정상적으로 xclock이 실행되면 오라클 설치가 가능하다.

// 간단히 하면 root로 display 설정 -> xhost + 설정 -> oracle 계정으로 display 설정 순이다.

===

 

1. 본인 작업 PC에 Xming 을 설치한다. (https://sourceforge.net/projects/xming/

2. putty로 접속한다. (Connection - SSH - X11의 X11 forwarding Enable X11 forwarding에 체크 후 접속)

3. putty에서 xclock 명령어로 본인 PC에서 시계가 정상적으로 뜨는지 확인 후 오라클 설치를 진행하면 install 화면이 정상적으로 뜨는 것을 확인할 수 있다.

 

[출처] Xming 설치법 : S01ving Note s01Va님 블로그

 

CentOS7에서 X11 forwarding 설정(X Window 설치)

1. CentOS yum install xorg

s01va.github.io

 

[오라클 11g 설치 시 정리가 매우 잘된 곳] 띠용이의 일상 블로그 띠용님 글

 

[21.02.02 수정] CentOS 7에 Oracle 11g 설치 완벽정리!

- 사전준비 Oracle 11g 파일을 준비합니다. https://www.oracle.com/database/technologies/oracle-database-software-downloads.html Database Software Downloads | Oracle Oracle Database 11g Release 2 Stand..

xxsiyoung.tistory.com

오라클 11g 설치 정리가 매우 잘되어있다. centos 7에 오라클 11g 설치하는데 정말 많은 도움을 받았다.

 

https://blog.naver.com/cordba/220061803210

 

xclock root에서만 보이는 경우(displayed only for "root" but not for another user)

xclock Error: Can't open display     최근 Solaris 10 x86에 Oracle DB를 설치하는 도중...

blog.naver.com

 

반응형
반응형

 · 개요 : a태그를 사용하여 href 링크 사용 시 크롬 하단에 나타나는 주소 숨기는 방법

 

 · 방법 : 

<a href="javascript:void(0)" onclick="location.href='http://www.google.com'">Hide Link</a>

  위 코드를 자신의 상태에 맞게 수정하여 사용한다.

 

 · 출처 : https://allinworld99.blogspot.com/2015/02/hide-url-hover-over-link-hide-link-from.html

 

Hide url hover over link / Hide link from status bar

--> --> AllInWorld99 provides a reference manual covering many aspects of web programming, including technologies such as HTML, XHTML, CSS, XML, JavaScript, PHP, ASP, SQL,FLASH, jQuery, java, for loop, switch case, if, if else, for...of, for...in, for...ea

allinworld99.blogspot.com

 

 · 개요 : GET 방식으로 파라미터 전송 시 공백에서 잘리는 현상 조치

 · 방법 : href= 뒤 파라미터 부분을 " 따옴표(Double Quotation Mark) 로 감싼다.

           href="블라블라"

 · 출처 : https://blog.naver.com/justgo000/150130283919

 

Get방식으로 공백넘길때 처리방법

[ 주소(URL)의 뒤에 정보를 추가하는 GET 방식은 최대 2,047 글자를 넘어갈 수 없습니다. ] - (taeyo...

blog.naver.com

 

반응형

+ Recent posts