Jenkinsใๅฉ็จใใCI/CDใใคใใฉใคใณใฎๆง็ฏ
ๆฌ่ฌ็พฉใฏใใฏใฉใฆใใใคใใฃใใขใใชใฑใผใทใงใณใๆงๆใใ4ใคใฎๆ ธๅฟ่ฆ็ด (MSAใCI/CDใDevOpsใContainer)ใฎไธใคใงใใCI(Continuous Integrationใ็ถ็ถ็ใคใณใใฐใฌใผใทใงใณ)ใจCD(Continuous Deploymentใ็ถ็ถ็ใใใญใคใกใณใ)ใใคใใฉใคใณใซใคใใฆๆฑใ่ฌ็พฉใงใใๆฌ่ฌ็พฉใ้ใใฆใCI/CDใใผใซใงใใJenkinsใๅฉ็จใใฆใญใผใซใซ็ฐๅขใจใฏใฉใฆใ็ฐๅขใซ่ชๅใ ใใฎ่ชๅๅใใคใใฉใคใณใๆง็ฏใใใใใญใคใใใใใซๅฟ ่ฆใชใใญใปในใ็่งฃใใๅฎ็ฟใใใใจใใงใใพใใ
ๅ่ฌ็ 4,781ๅ
้ฃๆๅบฆ ๅ็ด
ๅ่ฌๆ้ ็กๅถ้

ใ็ฅใใ
5 ไปถ
ใใใซใกใฏใ้ขๅณถ้ขใงใใ
ใJenkinsใไฝฟ็จใใCI/CD Pipelineใฎๆง็ฏใ่ฌ็พฉใจใDevOpsใฎใใใฎDockerไปฎๆณๅๆ่ก๏ผPrivate Harbor Registry๏ผใ่ฌ็พฉใงใฏใๆๆใฎDockerใณใณใใๅฎ่กใฎใใใซDinD๏ผDocker in Docker๏ผๆนๅผใงๅฎ่ทต็ฐๅขใๆง็ฏใใไพใๅฎ่กใใฆใใพใใ
ใใ ใใWindowsใจMacOS็ฐๅขใใใใใ็ฐใชใใMacOSใฎๅ ดๅใIntel chipใApple chipใซใใฃใฆ่จญๅฎใใชใใใฐใชใใชใใใใซใผใคใกใผใธใ็ฐใชใใพใใใใฎ็ปๅใงใฏใSSHใตใผใใผใจDockerใจใณใธใณใใคใณในใใผใซใใใฆใใใใใซๆงๆใใๅฎ็ฟใฎ้ใ่คๆฐใฎใใใซใผใณใณใใใๅฟ ่ฆใชๅ ดๅใซไฝฟใใใใใใใใใซๆงๆใใใใๅ่ฌ็ใฎๆนใ ใฎ็ฐๅขใซๅใใใฆ่ฃฝไฝใใใซใฏ็ก็ใใใใฎใไบๅฎใงใใใใใงใใใงใใใ ใไธ่ฌ็ใช็ฐๅขใงใฏ็ก็ใชใๅฎ็ฟใงใใใใใซใใใซใผใคใกใผใธใๆดๆฐใใใใจใใฆใใพใใ
ๆ่ฟใMacOS Apple chip ใงไฝฟ็จใใ docker-server:m1 ใคใกใผใธใๅฉ็จใใฆใๅฎ็ฟๆใไธ่จใฎใจใฉใผใชใฉใงๅฎ็ฟใงใใชใใจใฉใผใ็ขบ่ชใใใพใใใ
exec /docker-entrypoint.sh: invalid argument่คๆฐใฎใในใง็ขบ่ชใใฆไฟฎๆญฃใใใฆใฟใพใใใใMacOS Apple chipใงไฝฟ็จใใarm64ใขใผใญใใฏใใฃใซDockerใณใณใใใซใใใซใผใจใณใธใณใใคใณในใใผใซใใฆไฝฟ็จใใDinDๆนๅผใงใจใฉใผใ็บ็ใใใใใงใใ ๏ผใจใฉใผใกใใปใผใธใใญใฐใใชใใใๅๅ ใๆขใใซใฏ้็ใใใใพใใญ๏ผ
ใจใฉใผใฎไพ: https://www.inflearn.com/community/questions/1401289/service-create-%EC%8B%9C%EC%97%90-%EC%97%90%EB%9F%AC-% EB%B0%9C%EC%83%9D
ใใฎใคใกใผใธใงใฏ่งฃๆฑบใ้ฃใใใจๅคๆญใใใไปฅไธใฎใใใซUbuntuใใผในใซSSH + Dockerใจใณใธใณใใคใณในใใผใซใใใใผใธใงใณใๅใใซใใใฆ้ ๅธใใพใใใ
https://hub.docker.com/repository/docker/edowon0623/docker-server/general
ไธ่จใง็บ็ใใๅ้ก็ญใฏๅ จใฆ่งฃๆถใใใใใจใ็ขบ่ชใใพใใใ UbuntnใงใฏใDockerใตใผใในใ่ตทๅใใใใใซใไปฅไธใฎใณใใณใใๅ ใซๅฎ่กใใฆใใ ใใใ
service start dockerไปๅพใใDinDใฎๅ้กใชใฉใๅฎ็ฟใซ้ข้ฃใใๅ้กใ็ขบ่ชใใใใใใซใๆดๆฐใใใๅฎ่ทต็ฐๅขใๆไพใใพใใ
ๆฅ้ฑใฏ้ฃไผใงใใญใ็งๅไบบ็ใซๅคไบๅค้ฃใใ2024ๅนดใงใใใใๆฐใใๅฟใงๆฐใใไธๅนดใๅงใใใใใซใใพใใไปๅนดใฏใใใ่ฏใ่ฌ็พฉใง้ ป็นใซ่จชใใพใใใใๆใใพใใฆใใใงใจใใใใใพใใ
ใใใใจใใใใใพใใ
** ansible-serverใใwindowsใฎK8sใธใฎใในใๆใฎใชใใกใฌใณใน
ansible-serverใๅฉ็จใใฆWindowsใซใคใณในใใผใซใใdocker-desktopใฎKubernetesใซๆฅ็ถใใฆใในใใ่กใๅ ดๅใฏใไปฅไธใฎๅ ๅฎนใ็ขบ่ชใใฆใใ ใใใ
ansible-serverใงssh-copy-idใณใใณใใๅฉ็จใใฆwindowsใซid_rsa.pubใญใผใใกใคใซใฎๅ ๅฎนใใณใใผใใใใจใใใจใ้ๅธธใฎใญใผใใกใคใซใฎๅ ๅฎนใงใฏใชใใECHOใใจใใๆๅญๅใใทใฃใใซใซใชใฃใฆใใพใๅ ดๅใใใใพใใใใฎๅ ดๅใฏใssh-copy-idใณใใณใใฎไปฃใใใซใๅฏพๅฟใใid_rsa.pubใญใผใใกใคใซใฎๅ ๅฎนใ็ดๆฅใณใใผใใฆไฝฟ็จใใๅฟ ่ฆใใใใพใใไฝใใใฎๆนๆณใไฝฟ็จใใ็ตๆใจใใฆใ windows ใฎ .ssh ใใฉใซใใซใใ authorized_keys ใใกใคใซใซ ansible-server ใง็ๆใใid_rsa.pubใญใผใใกใคใซใฎๅ ๅฎนใไฟๅญใใใใฐใใใใใฎๆใฎๆณจๆ็นใฏใansible-serverใซใญใฐใคใณใใใขใซใฆใณใใจwindowsใตใผใใผใซใญใฐใคใณใใใขใซใฆใณใใจใไธ่ดใใชใใใฐใชใใใใใฎใขใซใฆใณใใฏwindowsใง็ฎก็่ ๆจฉ้ใๆใฃใฆใใๅฟ ่ฆใใใใdockerใkubectlใชใฉใฎๅฝไปคใไฝฟ็จใใ้ใซใจใฉใผใ็บ็ใใชใใงใฏใใใพใใใ่ฆ็ดใใใจใWindowsใซใญใฐใคใณใใใขใซใฆใณใใจๅใใขใซใฆใณใๅใงansible-serverใฎใขใซใฆใณใใไฝๆใใๅพใใญใผใใณใใผใใๅฟ ่ฆใใใใพใใใใฎใใใช้็จใ็ ฉใใใๅ ดๅใฏใsshๆฅ็ถๆใซ่ช่จผใชใใงๆฅ็ถใใใใใซssh-copy-idใณใใณใใไฝฟ็จใใใฎใงใใใฎ้จๅใฏใใฎใพใพใในใฏใผใใๅ ฅๅใใชใใ้ฒ่กใใansible-playbookใงใฏansibleใฎhostsใใกใคใซใซwindowsๆฅ็ถๆ ๅ ฑใ่จ้ฒใใใไฝฟ็จใใใ ใใจใplaybookใฎๅฎ่กๆใซใฏๅ้กใชใ้ฒ่กใงใใพใใ
ไปฅไธใฎๅฎ่กใใญใปในใฎ่ชฌๆใๅ็ งใใฆใใ ใใใ
Windows OS (docker-desktop ใคใณในใใผใซใKubernetes ๅฎ่กใIP: 192.168.0.7)
docker-server (ใใใซใผใณใณใใใIP: 172.17.0.3)
ansible-server๏ผDockerใณใณใใใAnsibleใคใณในใใผใซใIP๏ผ172.17.0.4๏ผ
ใพใใansible-serverใง็ๆใใใid_rsa.pubใญใผใdocker-serverใซssh-copy-idใณใใณใใไฝฟ็จใใฆใณใใผใใพใใ docker-serverใฎใญใผใใณใใผใใฆใsshใใในใฏใผใใชใใงๆฅ็ถใใใฆใใใใจใ็ขบ่ชใใฆใใ ใใใ

ansible-serverใฎid_rsa.pubใญใผใwindowsใตใผใใผใซใณใใผใใพใใ ๏ผไธใฎ็ปๅใฏ docker-server ใซใชใฃใฆใใพใใใansible-server ใใ้ฒใใงใใ ใใ๏ผใใใ ใใ id_rsa.pubใญใผใ็ๆใใ้ใฎใขใซใฆใณใใจ windows ใฎ openssh ใซๆฅ็ถใใใขใซใฆใณใใๅใใงใชใใใฐใชใใใใใฎ windows ใขใซใฆใณใใซใฏ docker ใ kubectl ใณใใณใใๅฎ่กใงใใ็ฎก็่ ๆจฉ้ใๆใฃใฆใใๅฟ ่ฆใใใใพใใใใฎใจใใssh-copy-idใณใใณใใไฝฟ็จใใฆid_rsa.pubใญใผใฎใณใใผใ่ฉฆใฟใใจใWindowsใฎauthorized_keysใใกใคใซใซid_rsa.pubใญใผใฎๅ ๅฎนใใณใใผใใใใฎใงใฏใชใใECHO~ใจใใๆๅญๅใใณใใผใใใฆใใพใๅ ดๅใใใใพใใใใใฎใใใชๅ ดๅใฏใใใฎใญใผใ็ดๆฅCOPY-PASTEๆนๅผใงWindowsใฎauthorized_keysใใกใคใซใซใณใใผใใฆใใ ใใใ ๏ผauthorized_keysใใกใคใซใwindowsใซใชใๅ ดๅใฏใใใกใคใซใ็ดๆฅไฝๆใงใใพใ๏ผ

id_rsa.pubใญใผใใณใใผใใไฝๆฅญใใใๅใซใไปฅไธใฎ4๏ผใฎใใใซwindowsใงsshใณใใณใใไฝฟใฃใฆwindowsใตใผใใผใซๆฅ็ถใใใใใจใ็ขบ่ชใใฆใใ ใใใ ๏ผopensshใใคใณในใใผใซใใใฆใใชใๅ ดๅใฏใคใณในใใผใซใใฆใใ ใใใ๏ผ

ไปๅใฏใansible-serverใใ็ดๆฅsshใณใใณใใงWindowsใฎopensshใตใผใใผใซๆฅ็ถใใใในใใใใฆใฟใฆใใ ใใใ

ไธ่จใฎ2ใง่ชฌๆใใใใใซใ id_rsa.pubใญใผใใณใใผใใใจใใฏใ id_rsa.pubใญใผใWindowsใฎใขใซใฆใณใใจๅใใขใซใฆใณใใงไฝๆใใๅฟ ่ฆใใใใพใใใ่จ้ฒใใฆไฝฟ็จใใใใจใใๅงใใใพใใใจใซใใsshใณใใณใใไฝฟ็จใใฆ็ดๆฅๆฅ็ถใ่ฉฆใฟใๅ ดๅใใใใansibleๅฝไปคใไฝฟ็จใใฆๅฆ็ใใๅ ดๅใๅคใใฎใงใssh-copy-idๆไฝใ้ฒใใใใจใชใ็ดๆฅansible hostsใใกใคใซใซๆฅ็ถๆ ๅ ฑใไฟๅญใใฆไฝฟ็จใใใใใซใใพใใใใฎใปใฏใทใงใณใงใฏใansible_userใansible_passwordใจใณใใชใซWindowsใขใฏใปในใขใซใฆใณใๆ ๅ ฑ๏ผ็งใฏ็ฎก็่ ๆจฉ้ใๆใคใฆใผใถใผใขใซใฆใณใๆ ๅ ฑใจใในใฏใผใใๅ ฅๅใใพใใ๏ผใๅคๆดใงใใพใใ ansible hosts ใใกใคใซๆ ๅ ฑใๅฎๆใใใใๆฌกใฎ ansible ๅฝไปคใไฝฟใฃใฆ ping ใขใธใฅใผใซใๆญฃๅธธใซๅฎ่กใใใฆใใใใจใ็ขบ่ชใใฆใใ ใใใ
ansible windows -m in_ping -u [windows ใขใซใฆใณใ]

ansible-playbook ใๅฎ่กใใๅใซใwindows ใซ K8s ใฎ manifest ใใกใคใซใไฟๅญใใใฆใใๅ ดๆใ็ขบ่ชใใkubectl ใณใใณใใไฝฟใฃใฆ Kubernetes ใฎใชใฝใผในใ็ขบ่ชใใฆใฟใพใใไปฅไธใฎไพใงใฏใK8sใฎใตใผใในใฎใชในใใ็ขบ่ชใใฆใใใๅบๆฌ็ใซไฝๆใใใใตใผใในไปฅๅคใฎใฆใผใถใผใไฝๆใใใตใผใในใฏ่ฆใใชใใใจใ็ขบ่ชใใฆใใพใใ

ansible-serverใงplaybookใใกใคใซใฎๅ ๅฎนใ็ขบ่ชใใพใใ windowsใซใณใใณใใๆธกใใฎใงใไปฅไธใฎไพใฎใใใซwin_commandใณใใณใใไฝฟ็จใ๏ผMacOSใฎๅ ดๅใฏcommandใณใใณใใไฝฟ็จ๏ผใๅฎ่กใใใใใใใงในใใใกใคใซใฎๅ ดๆใ็ตถๅฏพใในใจใใฆๆๅฎใใพใใ playbookใใกใคใซใๅฎ่กใใฆๅฎ่กใใใ็ตๆใ็ขบ่ชใงใใพใใ

ๆๅพใซใwindowsใงๅฎ่กใใใชใฝใผในใๆญฃๅธธใซๅๆ ใใใใใkubectlๅฝไปคใๅฉ็จใใฆ็ขบ่ชใใฆใฟใใใจใใงใใพใใ

ไธ่จใซใคใใฆใใใซ่ณชๅใใใๅ ดๅใฏใ่ณชๅๆฒ็คบๆฟใซๆธใใฆใใ ใใใ
ๅ้กใๆฉใใงใใๆนใ ใซใๅฝนใซ็ซใฆใฐๅนธใใงใใ
ใใใใจใใใใใพใใ
ใใใซใกใฏใ้ขๅณถ้ขใงใใ
ใJenkinsใๅฉ็จใใCI/CD Pipelineใฎๆง็ฏใ่ฌ็พฉใ้ฒใใชใใใๅฎ็ฟ็ฐๅขๆงๆใซ่ฆๅดใใๆนใๅคใใVMใง็ฐๅขๆงๆใๆฑใ้จๅใซใคใใฆใฎ่ฌ็พฉใๅฅ้่ฃฝไฝใใฆๅ ฑๆใใใใจใซใชใใพใใใ็ทด็ฟ็ฐๅขใฏใWindowsใใใณMacOS๏ผIntell chip๏ผใฆใผใถใผใฎๆนใๅพๆฅใฎDocker+SSH็ฐๅขใงใฏใชใใVirtualBoxใๅฉ็จใใ็ฐๅขใงVMใๆงๆใใฆใฟใใใจใใงใใใใใซใใพใใใ VMใซใคใณในใใผใซใใใDockerใๅฉ็จใใฆใๅฐใใงใ็ฐกๅใซๅฎ็ฟ็ฐๅขใๆงๆใใพใใใฎใงใๅ่ใซใใฆใใ ใใใ
ใใใใจใใใใใพใใ
ใใใซใกใฏใ้ขๅณถ้ขใงใใ
ใพใใ่ฌ็พฉใซ้ขๅฟใๆใฃใฆใใ ใใฃใๆนใ ใซๆ่ฌใฎๆจๆถใใใใใพใใ
ใใฎ่ฌ็พฉใฏใๅฎ่ทตใๅบๆฌ็ใซไธ็ทใซใชใในใ่ฌ็พฉใงใใ็นใซJenkinsใTomcatใDockerใตใผใใผใฏ็ดๆฅใคใณในใใผใซใใฆ็ทด็ฟใใฆใฟใใใจใใๅงใใใพใใ
ๆฎๅฟตใชใใใไธ้จใฎๅ่ฌ็ใฎๆน๏ผ็นใซใWindows๏ผใๅฎ็ฟใ้ฒใใใใใซๅฟ ่ฆใช็ฐๅขๆง็ฏใซๅฐ้ฃใใใใจๆใๆฎใใฆใใใ ใใพใใใ็งใฏ้ข้ฃใชใฝใผในใจในใฏใชใใใๅ ฑๆใใพใใใใ่งฃๆฑบใงใใชใๅ่ฌ็ใฎๆนใซใฏ็ณใ่จณใใใพใใใ
ๅ ใซๅ ฑๆใใฆใใใ ใใใ่ณชๅๅ็ญใใใณ่ฟฝๅ ๆ ๅใชใฉใ้ใใฆWindows+SSH+Dokcer็ฐๅขใงใฎๅฎ็ฟใฌใคใใๆไพใใฆใใใ ใใพใใใใ่ฟฝๅ ใใฆ็ขบ่ชใใใไบ้ ใใใๅ ฑๆใใพใใ
Windows๏ผSSHใตใผใใผ๏ผwith docker๏ผๅฎ่กๅฝไปค๏ผๆนๆณ1๏ผ
docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:latest /usr /sbin/init
Windows๏ผSSHใตใผใใผ๏ผwith docker๏ผๅฎ่กๅฝไปค๏ผๆนๆณ2ใไธ่จใฎๅฝไปคใงๅฎ่กใใใชใๅ ดๅ๏ผ
docker run -itd --name docker-server -p 10022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v / var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init
็งใใกใใในใใใไธ้จใฎWindows PCใงใฏใไปฅไธใฎๅฎ็ฟๆนๆณใใในใฆๆญฃๅธธใซๅไฝใใฆใใพใใใใๆ่ฟ่ณผๅ ฅใใWindows PC๏ผWSL2ใคใณในใใผใซ๏ผใงๅฎ็ฟ1ๅบฆใซใจใฉใผใใใใใจใ็ขบ่ชใใพใใใ็พๅจๆๆกใใใจใฉใผใฎๅๅ ใฏใWSL2ใงiptablesใฎ็ๆ้็จใงไปฅไธใฎใใใชใจใฉใผใ็บ็ใใใใจใงใใใใในใใใฆใฟใใจใ็พๅจใพใงใฏๅคงใใชๅ้กใชใๅฎ็ฟใๅฏ่ฝใจๅคๆญใใใ่ฉฒๅฝใคใกใผใธใจDockerfileๅ ฑๆใใพใใ
https://hub.docker.com/r/edowon0623/docker/tags -> docker pull edowon0623/docker:no_iptables
https://github.com/joneconsulting/docker-files
ใใใใฃใฆใWindows็ฐๅขใงDindๆนๅผ๏ผๅฎ็ฟในใฏใชใผใๆนๆณ1๏ผใงDockerใตใผใใ่ตทๅใใใชใๅ ดๅใฏใไปฅไธใฎใณใใณใใไฝฟใฃใฆๅฎ็ฟใใฆใฟใฆใใ ใใใ
Windows๏ผSSHใตใผใใผ๏ผwith docker๏ผๅฎ่กๅฝไปค๏ผๆนๆณ3๏ผ
docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:no_iptables /usr /sbin/init
ใใกใใใ่ฉฒๅฝใฎDockerใณใณใใใ่ตทๅใใๅพใซใSSHๆฅ็ถๅพใsystemctl start dockerใณใใณใใๅฎ่กใใฆใใใ ใใDockerใตใผใใ่ตทๅใใใพใใ
ใใไธๅบฆใ่ฌ็พฉใซ้ขๅฟใใๅฏใใใใ ใใใใใจใใใใใพใใใใใใ่ฏใใณใณใใณใใๆใฃใฆๆฐใใ่ฌ็พฉใๆบๅใใใฆใใใ ใใพใใ
ใใใใจใใใใใพใใ
ใใใซใกใฏใ้ขๅณถ้ขใงใใ
Jenkinsใไฝฟ็จใใCI / CD Piplineใฎๆง็ฏ่ฌ็พฉใงNodejsใงๆธใใใใขใใชใฑใผใทใงใณใใใใญใคใใๆนๆณใซใคใใฆ่ฌ็พฉ่ณๆใ่ฟฝๅ ใใพใใใใใฎใณใณใใณใใๅปใ9ๆใใใชใฏใจในใใใพใใใใๅคใใใชใๅ้ใ ใฃใใซใใใใใใใขใใใญใผใใใพใใ่ณๆใ้ ใใใฆใขใใใญใผใใใใฆ็ณใ่จณใใใพใใใ
NodejsใขใใชใฑใผใทใงใณใPM2ใจใใProcess Managerใง่ตทๅใใชใใใใใใDockerใคใกใผใธใจใใฆใใใญใคใใฆๅฎ่กใใใใญใปในใซใคใใฆ่ชฌๆใใฆใใพใใไธ่ถณใใฆใใ่ณๆใงใใใๅฟ ่ฆใชๆนใซๅฐใใงใๅฝน็ซใคใใจใ้กใฃใฆใ่ฟฝๅ ใฎ่ณชๅไบ้ ใฎใใ้จๅใฏๆฒ็คบๆฟใซๆธใใฆใใ ใใใๆ่ฟใใใญใธใงใฏใใฎ็ท ใๅใใงใใใซ็ขบ่ชใงใใพใใใงใใใใใงใใใ ใๆฉใ็ขบ่ชใใฆๅ็ญใใใฆใใใ ใใพใใ
ๆฎใใฎ2022ๅนดไธๅนด็ก้งใซใใไปไธใใฆใใ ใใใ
ใใใใจใใใใใพใใ

