IT/DevOps

[DevOps] CentOS 8 Jenkins CI, CD ํ™˜๊ฒฝ ๊ตฌ์ถ•(feat. eGovCI)

์–ดํฅ๊ผฌ๋น„ 2024. 5. 3.

    ์ด๋ฒˆ์—” ์ „์ž์ •๋ถ€ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์„œ๋ฒ„์šฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์ด์šฉํ•ด์„œ CI, CD๋ฅผ ๊ตฌ์ถ•ํ–ˆ๋‹ค.

    ๋‹ค์Œ์—” ์ €๋ฒˆ์— ์„ค์น˜ํ•œ GitLab๊ณผ ์ƒˆ๋กœ ์„ค์น˜ํ•œ Jenkins๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์—ฐ๋™ํ•˜๋Š” ๊ฒƒ๋„ ํฌ์ŠคํŒ… ์˜ˆ์ •์ด๋‹ค.

     

    [DevOps] CentOS 8 JenKins ์„ค์น˜(feat. CI, CD)

    ๋ชฉ์ฐจJenKins ์„ค์น˜๊ณผ์ •๋‚ด ๊ฒฝ์šฐ๋Š” jdk๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์—ˆ๊ธฐ์— ๊ทธ ๋ถ€๋ถ„์€ ์ƒ๋žตํ–ˆ๋‹ค.#๊ณต๊ฐœํ‚ค ๊ฐ€์ ธ์˜จ๋‹ค.rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key#์ €์žฅ์†Œ ํŒŒ์ผ ์„ค์น˜sudo wget -O /etc/yum.repos.d/je

    yaga.tistory.com

     

    [DevOps] CentOS 8 GitLab ์„ค์น˜

    ๋ชฉ์ฐจGitLab ์„ค์น˜๊ณผ์ •#GitLab์˜ CentOS์šฉ RPM ์ €์žฅ์†Œ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์‹คํ–‰curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash#gitlab ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฒ„์ „ ์„ค์น˜sudo yum

    yaga.tistory.com

    ๊ทธ๋ฆผ์€ ์ฐธ ๋ชป๊ทธ๋ ธ์ง€๋งŒ ๊ตฌ์กฐ๋Š” ๋Œ€๋žต์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

    ์ด๋กœ์จ ํ•ด๋ณด์ง€ ์•Š์•˜๋˜ JenKins ์„ธํŒ…์ด๋ผ๋Š” small success๋ฅผ ๋˜ ์–ป์—ˆ๋‹ค. ๐Ÿ˜„

    1. ๊ฐœ๋ฐœ์žpc์—์„œ GitLab์œผ๋กœ ์†Œ์Šค๋ฅผ commit/pushํ•œ๋‹ค.
    2. GitLab์— push ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ webhook์„ ์ด์šฉํ•ด์„œ jenkins์˜ job์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.
    3. jenkins์˜ job์—์„œ๋Š” ๋นŒ๋“œ ํˆด(์—ฌ๊ธฐ์„  maven)์„ ์ด์šฉํ•ด์„œ ๋นŒ๋“œํ•œ๋‹ค.
    4. ๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ ๊ฒฝ์šฐ WAS์˜ ๋ฐฐํฌ๊ฒฝ๋กœ์— ์†Œ์Šค๋ฅผ warํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋ฐฐํฌํ•œ๋‹ค.

    ๋‹ค์Œ์—” ๋ฒ„์ถ”์–ผ๋ฐ•์Šค์— ๋‹ค ์„ค์น˜ํ•ด์„œ ๋ผ์ด๋ธŒ๋กœ ์ดฌ์˜ํ• ๊นŒ ์ƒ๊ฐ์ค‘์ด๋‹ค.


    GitLab Community Edition ver: 15.9.1

    Jenkins 2.426.3

    JenKins๋ฅผ ๋„์šฐ๋Š” tomcat 9.0.85

    jdk 17.0.11(OpenJDK Corretto)

    apache-maven 3.9.6


    ๋‚ด์šฉ์ด ๊ธฐ๋‹ˆ๊นŒ ๋ชฉ์ฐจ๋กœ ์ด๋™ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.


    ์„œ๋ฒ„์šฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์—…๋กœ๋“œ

    ์•„๋ž˜ ๊ฒฝ๋กœ์—์„œ eGovCI-4.2.0.tar.xz๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋‹ค.

    https://www.egovframe.go.kr/home/sub.do?menuNo=94

    ์—…๋กœ๋“œ ๊ถŒ์žฅ ๊ฒฝ๋กœ(/home/์‚ฌ์šฉ์žํด๋”)์— ์—…๋กœ๋“œ ํ•œ๋‹ค.

    ์—…๋กœ๋“œํ•œ eGovCI-4.2.0.tar.xz์˜ ์••์ถ•์„ ํ•ด์ œํ•œ๋‹ค.

    ์„œ๋ฒ„์šฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ ํด๋” ๋ชฉ๋ก์„ ํ™•์ธํ•œ๋‹ค.

    Jenkins ์‹คํ–‰ ๋ฐ ์„ค์ •

    ์„œ๋ฒ„์šฉ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๋ฆฌ๋ˆ…์Šค์šฉ์€ jdk๊ฐ€ ๋™๋ด‰๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋‹ˆ jdk๋ฅผ ๋ฏธ๋ฆฌ ์„ธํŒ…ํ•ด๋†”์•ผ ํ•œ๋‹ค.

    ์ด ๋ถ€๋ถ„์€ ํ‘œ์ค€ํ”„๋ ˆ์ž„์›Œํฌ์„ผํ„ฐ์—์„œ ๋ฆฌ๋ˆ…์Šค์šฉ ๋ฐฐํฌํ•  ๋•Œ ๋ˆ„๋ฝ๋œ๊ฑด์ง€ ์ •ํ™•ํžˆ ์•Œ ์ˆ˜ ์—†๋‹ค. ๐Ÿ˜ฅ

    ๊ทธ๋ƒฅ ๋‹ค ๋„ฃ์–ด์ฃผ๋ฉด ์ข‹์œผ๋ จ๋งŒ..๋ฆฌ๋ˆ…์Šค์šฉ ๋ง๊ณ  ์•„๋ž˜์ฒ˜๋Ÿผ windows์šฉ์€ jdk 1.8๊ณผ 17 ๋‘˜ ๋‹ค ๋“ค์–ด์žˆ๋‹ค.

    ์„ธํŒ…๋œ jdk์™€ jenkins๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ํŒŒ์ผ์˜ JAVA_HOME ๊ฒฝ๋กœ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.

    vi /home/์‚ฌ์šฉ์žํด๋”/eGovCI-4.2.0/setEnv.sh

    jenkins๋ฅผ ๋„์šฐ๋Š” tomcat์˜ ํฌํŠธ ๋ณ€๊ฒฝ(WAS์™€ port ์ค‘๋ณต ๋ฐฉ์ง€) ํ›„ ๋ฐฉํ™”๋ฒฝ์„ ํ•ด์ œํ•œ๋‹ค.

    #ํฌํŠธ ์„ค์ • ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ์ผ ํŽธ์ง‘
    vi /home/์‚ฌ์šฉ์ž๋ช…/eGovCI-4.2.0/bin/apache-tomcat-9.0.85-jenkins/conf/server.xml
    
    #๋ฐฉํ™”๋ฒฝ ํ—ˆ์šฉ
    sudo firewall-cmd --permanent --zone=public --add-port=ํฌํŠธ๋ฒˆํ˜ธ/tcp
    #๋ฐฉํ™”๋ฒฝ ์ ์šฉ
    sudo firewall-cmd –reload
    #๋ฐฉํ™”๋ฒฝ ํ—ˆ์šฉ ๋ชฉ๋ก
    sudo firewall-cmd --list-all

    jenkins๋ฅผ ๊ธฐ๋™ํ•œ๋‹ค.

    jenkins์˜ admin ์ž„์‹œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธ ํ›„ ๋ณต์‚ฌํ•œ๋‹ค.

    cat /home/์‚ฌ์šฉ์ž๋ช…/eGovCI-4.2.0/home/Jenkins/secrets/initialAdminPassword

    ๋ธŒ๋ผ์šฐ์ €์—์„œ host:8081/jenkins๋กœ ํ˜ธ์ถœํ•œ ๋’ค admin/์ž„์‹œ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ๋กœ๊ทธ์ธ ํ•œ๋‹ค.

    ๊ทธ ํ›„ admin ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝ ํ›„ ์žฌ๋กœ๊ทธ์ธํ•œ๋‹ค.(Jenkins๊ด€๋ฆฌ > Users > Password)

    Tools

    Jenkins ๊ด€๋ฆฌ > System Configuration > Tools ์„ ํƒ ํ›„ Maven Configuration, JDK installations, Git installations, Maven installations์„ ์„ค์ • ํ›„ ์ €์žฅํ•œ๋‹ค.

    GitLab Plugin ์„ค์น˜

    ์†Œ์Šค ์ €์žฅ์†Œ๊ฐ€ GitLab์ด๋ผ์„œ GitLab ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•œ๋‹ค.(Jenkins๊ด€๋ฆฌ > Plugins > ์‚ฌ์šฉ๊ฐ€๋Šฅ ํ”Œ๋Ÿฌ๊ทธ์ธ)

    Item ์ƒ์„ฑ ๋ฐ ์„ค์ •

    ์ž‘์—…์„ ์ง„ํ–‰ํ•   Item๋ช… ์ž…๋ ฅ ํ›„ Maven project ์„ ํƒ ํ›„ Ok๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

    ์†Œ์Šค์ฝ”๋“œ๊ด€๋ฆฌ์—์„œ Git์„ ์„ ํƒํ•œ ํ›„ Repository URL์— GitLab ์ €์žฅ์†Œ URL์„ ์ž…๋ ฅํ•œ๋‹ค.

    ํ˜„์žฌ๋Š” GitLab ๊ณ„์ •์ด ์—†์–ด์„œ ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•œ๋‹ค.

    Credentials > Add(Jenkins) ์„ ํƒ ํ›„ Username, Password๋งŒ ๋ณธ์ธ์˜ gitLab๊ณ„์ •๋กœ ์ž…๋ ฅ ํ›„ Add๋ฅผ ๋ˆ„๋ฅธ๋‹ค.(ID, Description์€ ์„ ํƒ์‚ฌํ•ญ์ด๋‹ค.)

    Git > Repositories > Credentials์—์„œ ๋ฐฉ๊ธˆ ์ถ”๊ฐ€ํ•œ ๊ณ„์ •์„ ์„ ํƒํ•œ๋‹ค.

    Branches to build๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ Branch Specifier๋ฅผ ๋นˆ๊ฐ’์œผ๋กœ ํ•ด์„œ ๋ชจ๋“  branch๋กœ ์„ค์ •ํ–ˆ๋‹ค.

    Apply๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

    ๋นŒ๋“œ์œ ๋ฐœ์—์„œ Build when a change is pushed to GitLab์„ ์ฒดํฌ ํ›„ GitLab webhook URL์„ ๋ฉ”๋ชจํ•ด ๋‘”๋‹ค.

    ๋นŒ๋“œ ์œ ๋ฐœ > ์Šคํฌ๋กค ๋‚ด๋ ค์„œ Secret token์—์„œ Generate์„ ๋ˆ„๋ฅด๋ฉด ํ† ํฐ์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋ฉ”๋ชจํ•ด ๋‘๊ณ  (์ ˆ๋Œ€ ์™ธ๋ถ€์— ์œ ์ถœ๋˜๋ฉด ์•ˆ๋œ๋‹ค.) Apply ๋ˆ„๋ฅธ ํ›„ ์ €์žฅ์„ ๋ˆ„๋ฅธ๋‹ค.

    GitLab์œผ๋กœ ์ด๋™ ํ›„  > ํ•ด๋‹น ํ”„๋กœ์ ํŠธ > Settings > Access Tokens์—์„œ ํ† ํฐ์„ ์ƒ์„ฑํ•œ๋‹ค.
    ๋งŒ๋ฃŒ์ผ์„ ์ง€์šธ ๊ฒฝ์šฐ ๋งŒ๋ฃŒ๊ฐ€ ์—†๊ฒŒ ๋˜๊ณ  Select scopes๋Š” ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ฒดํฌ ํ›„ Create Project access token ์„ ํƒ ์‹œ ํ† ํฐ์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋ฉ”๋ชจํ•ด๋‘”๋‹ค. (์ ˆ๋Œ€ ์™ธ๋ถ€์— ์œ ์ถœ๋˜๋ฉด ์•ˆ๋œ๋‹ค.)

    Settings > Webhooks์—์„œ URL์— jenkins์—์„œ ๋ฉ”๋ชจํ•ด ๋‘” GitLab webhook URL์„ ์ž…๋ ฅ(์ด ๋•Œ host๋Š” localhost๊ฐ€ ์‹ค์ œ IP๋ฅผ ์ž…๋ ฅํ•ด์•ผ ์™ธ๋ถ€ ํ†ต์‹ ์ด ๋œ๋‹ค.), Secret token๋„ jenkins์—์„œ ์ƒ์„ฑํ•œ ํ† ํฐ ์ž…๋ ฅ ํ›„ Trigger > Push events์—์„œ ์›ํ•˜๋Š” branch๋ฅผ ์ฒดํฌ ํ•œ ๋’ค (ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด All branches๋กœ ์ฒดํฌํ–ˆ๋‹ค.) Add webhook์„ ๋ˆ„๋ฅธ๋‹ค.

    ๋งŒ์ผ webhook ์ƒ์„ฑ ์‹œ ์•„๋ž˜์ฒ˜๋Ÿผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ•  ๊ฒฝ์šฐ ์ „์ฒด ๊ด€๋ฆฌ์ž๋กœ ์ ‘์† ํ›„ Admin Area > Network > outbound requests ์„ ํƒ ํ›„ Allow requests to the local network from web hooks and services ์ฒดํฌ ํ›„ ์ €์žฅ ํ•œ ๋’ค ์žฌ์‹œ๋„ํ•œ๋‹ค.

    webhook์ด ์ƒ์„ฑ๋˜๋ฉด Test > Push events๋ฅผ ๋ˆŒ๋Ÿฌ ํ…Œ์ŠคํŠธํ•œ๋‹ค.
    ๋งŒ์ผ ์•„๋ž˜์ฒ˜๋Ÿผ 403 ์—๋Ÿฌ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ jenkins์—์„œ Secret token์ด ์ œ๋Œ€๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. Secret token Generate ํ›„ Apply ๋ˆ„๋ฅธ ํ›„ ์ €์žฅ์„ ๋ˆŒ๋Ÿฌ์•ผ ์ƒ์„ฑ๋œ๋‹ค.

    webhook ์ •์ƒ ํ†ต์‹  ๋  ๊ฒฝ์šฐ ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒํƒœ๊ฐ’ 200์ด ํ™•์ธ๋œ๋‹ค.

    ๋‹ค์‹œ Jenkins๋กœ ์™€์„œ Jenkins ๊ด€๋ฆฌ > Credentials > Stores scoped to Jenkins์—์„œ Domains์˜ global์„ ๋ˆ„๋ฅธ๋‹ค.

    Kind > GitLab API token ์„ ํƒ, API token์— GitLab์—์„œ ์ƒ์„ฑํ•œ API token์„ ์ž…๋ ฅ ํ›„ Create๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

    Jenkins ๊ด€๋ฆฌ > System > GitLab์—์„œ Connection name, GitLab host URL ์ž…๋ ฅ ํ›„ Credentials์—์„œ ์ƒ์„ฑํ•œ GitLab API token ์„ ํƒ ํ›„ Test Connection์„ ๋ˆ„๋ฅด๊ณ  Success๊ฐ€ ํ‘œ์ถœ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

    Dashboard์—์„œ ์•„๊นŒ ์ƒ์„ฑํ•œ item ์„ ํƒ ํ›„ ๊ตฌ์„ฑ์„ ๋ˆ„๋ฅด๊ณ  Build๋ถ€๋ถ„์—์„œ Goals and options์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ž…๋ ฅ(์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์ž…๋ ฅํ•œ๋‹ค.) ํ›„ Apply๋ฅผ ๋ˆ„๋ฅธ๋‹ค.

    WAS(apache tomcat 9.x) ์„ค์ •

    WAS์— tomcat manager ๊ณ„์ •์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํŒŒ์ผ์„ ํŽธ์ง‘ ํ›„ tomcat ์žฌ๊ธฐ๋™ํ•œ๋‹ค.

    #tomcat user ํŽธ์ง‘
    vi /tomcat์„ค์น˜๊ฒฝ๋กœ/tomcat/conf/tomcat-users.xml
    
    #tomcat manager ์›๊ฒฉ ์ ‘์† ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•จ
    vi /tomcat์„ค์น˜๊ฒฝ๋กœ/tomcat/webapps/manager/META-INF/context.xml
    # <Value className…> ์ฃผ์„์ฒ˜๋ฆฌ

    ๋ธŒ๋ผ์šฐ์ €์—์„œ host:port/manager ํ˜ธ์ถœ ํ›„ ์ƒ์„ฑํ•œ tomcat manager๊ณ„์ •์œผ๋กœ ์ ‘์† ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

    ๋‹ค์‹œ Jenkins๋กœ ์™€์„œ Jenkins๊ด€๋ฆฌ > Plugins์—์„œ deploy๋ผ๊ณ  ๊ฒ€์ƒ‰ ํ›„ Deploy to container๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

    Item > ๊ตฌ์„ฑ์—์„œ ๋นŒ๋“œ ํ›„ ์กฐ์น˜ > ๋นŒ๋“œ ํ›„ ์กฐ์น˜ ์ถ”๊ฐ€์—์„œ Deploy war/ear to a container๋ฅผ ์„ ํƒํ•œ๋‹ค.

    War/EAR files์˜ ํ‘œํ˜„์‹์„ ์ž…๋ ฅ ํ›„(๋งค๋‰ด์–ผ์—์„œ๋Š” ๋ชจ๋“  warํŒŒ์ผ๋กœ ์ž…๋ ฅํ–ˆ๋‹ค.)
    Containers > Add Container ์„ ํƒ ํ›„ Tomcat 9.x Remote๋ฅผ ์„ ํƒํ•œ๋‹ค.

    Tomcat 9.x Remote > Credentials > Add(Jenkins)๋ˆ„๋ฅธ ํ›„ tomcat manager์ •๋ณด๋ฅผ ์ž…๋ ฅ ํ›„ Add๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์ถ”๊ฐ€ ํ›„ Credentials์—์„œ์„ ํƒ ํ›„ Tomcat URL ์ž…๋ ฅ ํ›„ ์ €์žฅํ•œ๋‹ค.

    CI, CD ํ…Œ์ŠคํŠธ

    ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ branch ์ƒ์„ฑ ๋ฐ ํ™”๋ฉด ์ˆ˜์ • ํ›„ GitLab์— commit/pushํ•œ๋‹ค.

    Jenkins์—์„œ ๋นŒ๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

    Console Output ์„ ํƒ ์‹œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

    ์„œ๋ฒ„์˜ WAS ๋ฐฐํฌ ๊ฒฝ๋กœ์— warํŒŒ์ผ์˜ ๋ฐฐํฌ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.

    warํŒŒ์ผ์ด ์ž˜ ์˜ฎ๊ฒจ์กŒ๊ณ  ์••์ถ•๋„ ํ’€๋ ธ๋‹ค.

    ๋ธŒ๋ผ์šฐ์ €์—์„œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ url ํ˜ธ์ถœ ํ›„ ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋‚ด์šฉ์˜ ๋ณ€๊ฒฝ์„ ํ™•์ธํ•œ๋‹ค.

    ์ •์ƒ์ ์œผ๋กœ ์ˆ˜์ •ํ•œ ์†Œ์Šค๊ฐ€ ์ ์šฉ๋˜์—ˆ๋‹ค.

    ์ „์ž์ •๋ถ€ CI ๊ตฌ์ถ• ๊ฐ€์ด๋“œ๊ฐ€ ๋ฆฌ๋ˆ…์Šค์šฉ์€ ์ฐธ์กฐํ•  ๋งŒํ•œ ๊ฒŒ ๋ณ„๋กœ ์—†์–ด์„œ ์‚ฝ์งˆ ๋งŽ์ดํ–ˆ๋‹ค.

    ํœด ์ด๋ฒˆ ํฌ์ŠคํŒ…์€ ๋งค์šฐ ํž˜๋“ค์—ˆ๋‹ค.

    ๋ฏธ๋ž˜์˜ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•˜๋Š” ๊ธฐ๋ก์ด๊ณ  ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ž‘์€ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ผ๋ฉฐ..


    ๊ฐœ์ธ ์Šคํ„ฐ๋”” ๊ธฐ๋ก์„ ๋ฉ”๋ชจํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ ํ‹€๋ฆฐ์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹€๋ฆฐ ์  ์žˆ์„ ๊ฒฝ์šฐ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

     

    [AWS] EC2 + Docker + RDS๋กœ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์„œ๋ฒ„ ๋ฐ DB ๊ตฌ์ถ• ๊ฐ€์ด๋“œ ๐Ÿš€๐Ÿ’ป๐Ÿ“ฆ

    ์ด ํฌ์ŠคํŒ…์€ AWS ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ EC2/RDS ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์›น์„œ๋ฒ„์™€ ์—ฐ๋™ํ•œ ๊ธฐ๋ณธ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.๋น ๋ฅธ ์‹œ์ผ๋‚ด์— AWS ํšŒ์›๊ฐ€์ž…๋ถ€ํ„ฐ ์•„ํ‚คํ…์ฒ˜ 3๊นŒ์ง€ ๊ตฌ์ถ•ํ•˜๋Š” ๋ผ์ด๋ธŒ ์˜์ƒ ํฌ์ŠคํŒ… ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.2025๋…„ 2์›”15

    yaga.tistory.com

     

     

    [DevOps] CentOS7 ์„ค์น˜๋ถ€ํ„ฐ jdk, mysql, tomcat ์—ฐ๋™๊นŒ์ง€ ๊ณผ์ •

    CentOS7 ์„ค์น˜๋ถ€ํ„ฐ jdk, mysql, tomcat ์„ค์น˜ ๋ฐ ๊ฐ„๋‹จํ•œ ์—ฐ๋™๊ณผ์ •์„ ๊ฐ„๋žตํžˆ ํฌ์ŠคํŒ…ํ•œ๋‹ค.CentOS ๋ฏธ๋Ÿฌ ์‚ฌ์ดํŠธ์—์„œ isovํŒŒ์ผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค.(์—ฌ๊ธฐ์„  GUIํ™˜๊ฒฝ์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด DVD ์„ ํƒ)CentOS7 ์„ค์น˜๋ฆฌ๋ˆ…์Šค ๋ถ€ํŒ…๋””

    yaga.tistory.com

    ๋Œ“๊ธ€