어제 중단해두었던 GCP서버(gitlab)시작 후 IP확인 -> 확인 결과 바뀌지 않음 그대로 진행.
-> 도메인으로 gitlab 진입하기
root아닌 사용자계정에서 진행
git hub repository - gitbash (win) - git lab
✔️ 메뉴 - create new project -create blank project
✔️ 프로젝트 이름 : dev-site
Visibility Level : public
create project
✔️ git bash 열어서 아래 명령어 진행
r2com@DESKTOP-DD3FU43 MINGW64 ~
$ mkdir git-migration
r2com@DESKTOP-DD3FU43 MINGW64 ~
$ git clone --mirror https://github.com/mangjini/hello-world.git git-migration
미러 명령어로 인해 폴더에도 내용이 들어온 모습 확인 가능.
r2com@DESKTOP-DD3FU43 MINGW64 ~
$ cd git-migration/
r2com@DESKTOP-DD3FU43 MINGW64 ~/git-migration (BARE:master)
$ ls
HEAD config description hooks/ info/ objects/ packed-refs refs/
✔️ git lab에서 master브랜치 추가
✔️branch protect 해제
git lab 프로젝트 설정 - repository setting - Protected branches expand - main Unprotect
✔️다시 git hub에서 아래 명령어 진행.
r2com@DESKTOP-DD3FU43 MINGW64 ~/git-migration (BARE:master)
$ git push -uf http://gitlab.lovemj.shop/mangji/dev-site --all
git lab에서 마이그레이션 확인
이름 : jenkins-server
키페어 : 생성해둔 키페어
VPC:MY-VPC
서브넷 : PUBLIC-2A
보안그룹 : 기존보안그룹 ; DEV-SG
고급세부정보; 사용자데이터
#!/bin/bash
timedatectl set-timezone Asia/Seoul
나머지 default, 인스턴스 시작.
mobaxterm으로 CLI환경 진입
✔️ 아래 설치 명령어 진행
$ sudo su -
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo ## 저장소 가져오기
# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key ## 저장소 검증을 위한 키 가져오기
# yum install -y fontconfig java-11-openjdk
# amazon-linux-extras install -y java-openjdk11
# yum install -y jenkins
# systemctl enable --now jenkins
# hostnamectl set-hostname jenkins-server
# exit
# sudo su -
# yum install -y git
# cat /var/lib/jenkins/secrets/initialAdminPassword ## 패스워드 수정하기위한 임시패스워드 확인
✔️ 웹브라우저로 jenkins 접속 - http://도메인:8080 ; unlock Jenkins(임시 패스워드 입력)
✔️ getting started 오른쪽 상단 X , start using jenkins
✔️ 비밀번호 변경 , timezone 설정하기
admin- 설정 - 패스워드 입력 - 맨 하단 Timezone: Asia/Seoul - Apply , Save - ID:admin, 재설정한 패스워드로 로그인
✔️ 왼쪽메뉴에서 새로운 ITEM -name: HelloWorldJob-Freestyle project- ok - 설명 : 안녕하세요 - build 드랍다운 - excute shell ; command :
echo "Hello world"
uptime
ip a
✔️ 왼쪽메뉴 지금 빌드 클릭 - build history - #1 클릭 - console output
✔️ jenkins - 대시보드 - jenkins 관리 - 플러그인 관리 - 설치가능 탭 클릭 -gitlab 검색 - Gitlab 체크하고 install without restart
✔️ jenkins 관리 - Global Tool Configuration - Git - Name : Git -Path to Git executable : git - Apply, Save
✔️ 왼쪽메뉴에서 새로운 ITEM -name: PullCodeFromGitLab-Freestyle project- ok - 설명 : GitLab에서 코드 가져오기
✔️ 소스코드 관리 : Git 선택 - Repository URL :
✔️ apply , 저장 - 지금 빌드 - #1 클릭 - CONSOL OUTPUT-
이 경로로 잘 연동 되었는지 확인
[root@jenkins-server ~]# ll /var/lib/jenkins/workspace/PullCodeFromGitLab
total 28
-rw-r--r-- 1 jenkins jenkins 130 Jul 29 10:49 Dockerfile
-rw-r--r-- 1 jenkins jenkins 5970 Jul 29 10:49 pom.xml
-rw-r--r-- 1 jenkins jenkins 1 Jul 29 10:49 README.md
-rw-r--r-- 1 jenkins jenkins 479 Jul 29 10:49 regapp-deploy.yml
-rw-r--r-- 1 jenkins jenkins 195 Jul 29 10:49 regapp-service.yml
drwxr-xr-x 3 jenkins jenkins 32 Jul 29 10:49 server
-rw-r--r-- 1 jenkins jenkins 6 Jul 29 10:49 test.tml
drwxr-xr-x 3 jenkins jenkins 32 Jul 29 10:49 webapp
jenkins,maven,gitlab
✔️mobaxterm에서 아래 명령어 진행
# cd /opt
# wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
# tar -xvzf apache-maven-3.8.6-bin.tar.gz
# mv apache-maven-3.8.6 maven
# cd maven
# cd bin
# ls
# cd ~
# find / -name java-11* ## java 경로 확인
# vi .bash_profile
M2_HOME=/opt/maven
M2=/opt/maven/bin
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.amzn2.0.3.x86_64
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:$JAVA_HOME:$M2_HOME:$M2
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# source .bash_profile ## bash_profile 수정사항적용
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.amzn2.0.3.x86_64:/opt/maven:/opt/maven/bin
# mvn -v
✔️ jenkins GUI에서 플러그인 설치
dashboard - jenkins 관리 - 플러그인 관리 - 설치 가능 - maven 검색 - maven integration 체크 - install without restart
✔️ dashboard - jenkins 관리 - global tool configuration - JDK(JAVA development kit) - Add JDK -Name : java-11 - JAVA_HOME: /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.amzn2.0.3.x86_64 - 하단으로 내려서 Maven - Add Maven - Name : maven-3.8.6 - install automatically 체크 해제 (이미 customize로 설치하였음) - MAVEN_HOME : /opt/maven - apply, save
✔️ 왼쪽메뉴에서 새로운 ITEM -name: FirstMavenProject-Maven project- ok - 설명 : 첫번째 메이븐 프로젝트 - 소스코드 관리 : Git - URL: http://gitlab.lovemj.shop/mangji/dev-site.git (gitlab URL) [gitlab repository를 퍼블릭으로 만들었기 때문에 크리덴셜 필요 없음] - Build ; Goals and options : clean install [기존 것이 있으면 삭제하고 설치하겠다.] - apply, 저장
✔️ 지금 빌드 - #1 - 확인
✔️ 대시보드 - FirstMavenProject 화면 - 작업공간
->제대로 연동되었는지 확인 가능
어제 넣어둔 부트스트랩 파일들 확인 가능 .
이름 : tomcat-server
키페어 : 생성해둔 키페어
VPC:MY-VPC
서브넷 : PUBLIC-2C
보안그룹 : 기존보안그룹 ; DEV-SG
고급세부정보; 사용자데이터
#!/bin/bash
timedatectl set-timezone Asia/Seoul
나머지 default, 인스턴스 시작.
mobaxterm으로 CLI환경 진입
$ sudo su -
# hostnamectl set-hostname tomcat-server
# exit
$ sudo su -
# amazon-linux-extras install -y java-openjdk11
# cd /opt
google에서 tomcat 9 download 검색해서 버전정보 확인하기
tar.gz 우클릭 , 링크주소 복사
# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
# tar -xvzf apache-tomcat-9.0.65.tar.gz
# mv apache-tomcat-9.0.65 tomcat
# cd tomcat/bin/
# ./startup.sh
start확인
처음상태
# cd /opt/tomcat
# find / -name context.xml
# vi /opt/tomcat/webapps/host-manager/META-INF/context.xml ##접근제어 주석처리 해주기
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
# vi /opt/tomcat/webapps/manager/META-INF/context.xml ## 접근제어 주석처리 해주기
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
접근제어 해제 완료
아래명령어는 해줘도 되지만 안해줘도 접근제어 해제 됨.
# cd bin/
# ./shutdown.sh
# ./startup.sh
# /opt/tomcat/conf
# vi /opt/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="kosa0401" roles="manager-gui, manager-script, manager-jmx, manager-status"/>
<user username="deployer" password="kosa0401" roles="manager-script"/>
<user username="tomcat" password="kosa0401" roles="manager-gui"/>
아래와 같이 하단에 붙여줌.
저장하고 나오면 ,
아래 사용자 이름에 admin으로 로그인 가능해짐.
# ln -s /opt/tomcat/bin/startup.sh /usr/local/bin/tomcatup
# ln -s /opt/tomcat/bin/shutdown.sh /usr/local/bin/tomcatdown
# tomcatdown
# tomcatup
✔️ jenkins - 대시보드 - jenkins 관리 - 플러그인 관리 - 설치가능 탭 클릭 - deploy to container 검색 - deploy to container 체크하고 install without restart
✔️ jenkins - 대시보드 - jenkins 관리 - Manage Credentials - Store ; Jenkins 클릭 - Global credentials 클릭
Add credentials 클릭
username: deployer , password 입력 , ID: tomcat_deployer - create
✔️ 대시보드 - 왼쪽메뉴에서 새로운 ITEM -name: BuildAndDeployjob- maven project- ok
✔️설명 : 메이븐으로 코드를 빌드하고 톰캣서버로 배포하자
✔️소스코드 관리 : Git
-URL: http://gitlab.lovemj.shop/mangji/dev-site.git
✔️Build ; Goals and options : clean install
✔️빌드 후 조치 : Deploy war/ear to a container
WAR/EAR files : **/*.war
Add Container 드랍다운 - tomcat 9.x remote - Credential 드랍다운 - deployer/**** - Tomcat URL : http://tomcat.lovemj.shop:8080/
-apply, 저장
✔️ 지금 빌드 - #1
✔️ 톰캣 manager app에서 확인
✔️ git bash에 git lab리포지토리(branch-master) 내용물 가져오기
r2com@DESKTOP-DD3FU43 MINGW64 ~
$ git clone -b master http://gitlab.lovemj.shop/mangji/dev-site.git
Cloning into 'dev-site'...
remote: Enumerating objects: 568, done.
remote: Total 568 (delta 0), reused 0 (delta 0), pack-reused 568
Receiving objects: 100% (568/568), 800.63 KiB | 27.61 MiB/s, done.
Resolving deltas: 100% (157/157), done.
r2com@DESKTOP-DD3FU43 MINGW64 ~
$ cd dev-site/webapp/src/main/webapp/
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ ls
WEB-INF/ css/ images/ index.jsp.bak js/
assets/ gcp.tar index.jsp index.jsp.old test.txt
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ vi index.jsp
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git add index.jsp
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git commit -m "mangji"
[master cf6f83e] mangji
1 file changed, 1 insertion(+), 1 deletion(-)
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git push -uf origin master
대시보드 - BuildAndDeployjob - 지금 빌드
대시보드 - BuildAndDeployjob - 구성 - 빌드 유발 - poll SCM 체크 - Schedule : * * * * *
- apply -저장
✔️ 자동 빌드 확인하기 위해 또 내용 수정하기
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git add index.jsp
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git commit -m "new"
r2com@DESKTOP-DD3FU43 MINGW64 ~/dev-site/webapp/src/main/webapp (master)
$ git push -uf origin master
자동 확인
변경 내용 확인
✔️파일 - 가상시스템 가져오기 - centos7.ova - CPU: 2, RAM 4G, -DVD,USB 해제 - 가져오기
✔️ 해당 서버 선택 - 설정 - 네트워크 - NAT네트워크 - 어댑터1 : NATNetWor이름: NatNetwork (다같이 강의실 환경이라 브릿지 이용X 혼자하거나 프로젝트할 때 브릿지 사용하자) - 어댑태2: 호스트 전용 어댑터
-시작
IP : 192.168.56.106
# curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/docker-ce.repo
# yum --enablerepo=docker-ce-stable -y install docker-ce-19.03.15-3.el7
# mkdir /etc/docker
# cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# systemctl enable --now docker
# systemctl daemon-reload
# systemctl restart docker
# systemctl disable --now firewalld
# setenforce 0
# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
# swapoff -a
# sed -i '/ swap / s/^/#/' /etc/fstab
# cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
# sysctl --system
# reboot
# cat <<'EOF' > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
# yum -y install kubeadm-1.19.16-0 kubelet-1.19.16-0 kubectl-1.19.16-0 --disableexcludes=kubernetes
# systemctl enable kubelet
📙 ✔️✏️📢⭐️📌
# ss -ant
git clone -b master http://gitlab.lovemj.shop/mangji/dev-site.git