Jenkins λΉμ μ μ’ λ£ μ μλ μμνλ systemd μλΉμ€ νμΌ
ν μ€νΈ νκ²½
- NHN Cloud
- Ubuntu 20.04 LTS
- Docker 23.0.3
- Jenkins 2.399
- Python 3.9
μν©
Jenkinsκ° λΉμ μμ μΌλ‘ μ’ λ£λμμ κ²½μ°, Jenkinsκ° μλ μ€νλκ² νλλ‘ ν©λλ€.
ν΄κ²°λ°©λ²
sudo systemctl enable jenkins
λͺ λ Ήμ΄ μ€νFailed to enable unit: Unit file jenkins.service does not exist.
μ κ°μ μ€λ₯κ° λ°μν©λλ€.
- Jenkins Docker 컨ν μ΄λλ₯Ό μλ μμνλ systemd μλΉμ€ νμΌμ μμ±νμ¬ μ μ©ν΄μ€λλ€.
/usr/lib/systemd/system
λλ ν 리μjenkins.service
νμΌ μμ±
sudo vi /usr/lib/systemd/system/jenkins.service
2. νμΌ λ΄μ© μμ±
[Unit]
Description=Jenkins container
Requires=docker.service
After=docker.service
[Service]
Restart=on-failure
Group=docker
ExecStart=/usr/bin/docker start -a jenkins
ExecStop=/usr/bin/docker stop -t 2 jenkins
[Install]
WantedBy=multi-user.target
Jenkins Docker 컨ν
μ΄λλ₯Ό κ΄λ¦¬ν μ systemd μλΉμ€μΈ jenkins
λ₯Ό μ μν©λλ€.
μλΉμ€ νμΌμλ μΈ κ°μ λΆλΆμ΄ μμ΅λλ€.
[Unit]
: μλΉμ€κ° νμλ‘νλ λͺ¨λ νλͺ©μ λμ΄ν©λλ€. μ μ©νκΈ° μν΄μλ Docker μλΉμ€κ° μ€ν μ€μ΄μ΄μΌ ν©λλ€.[Service]
:Restart=on-failure
: μλΉμ€κ° μ΄λ€ μ΄μ λ‘ μ€ν¨νκ±°λ μ€μ§λλ©΄ μλμΌλ‘ λ€μ μμλμ΄μΌν¨μ μ§μ - μλΉμ€κ° λΉμ μμ μΌλ‘ μ’ λ£λμμ λμλ§ λμν¨. νΈμ€νΈ λ¨Έμ μ΄ κ°μ μ’ λ£λλ κ²½μ°λ μμ€ν μμ€μ μ΄λ²€νΈλ‘μ μλΉμ€ μ체μ μ’ λ£μλ λ€λ₯΄κΈ° λλ¬Έμ μΌλ°μ μΌλ‘ νΈμ€νΈ λ¨Έμ μ΄ κ°μ μ’ λ£λ λλ systemdκ° μλΉμ€λ₯Ό μ¬μμνμ§ μμ. -> λ°λͺ¬ κ°μ μ€ν¬λ¦½νΈ λ±λ‘μ΄ νμν κ²μΌλ‘ μκ°λ¨
Group
: irteam, irteamsu, root μ¬μ©μ λͺ¨λ μ€ν κ°λ₯νλλ‘ Group μ€μ ExecStart
: Jenkins 컨ν μ΄λλ₯Ό μμνλ λͺ λ Ήμ μ§μ ExecStop
: Jenkins 컨ν μ΄λλ₯Ό μ€μ§νλ λͺ λ Ήμ μ§μ
[Install]
: μλΉμ€κ° μμλ λ, μ΄ κ²½μ°multi-user.target
λ 벨μμ μμλ¨μ μ§μ
3. μ μλΉμ€ νμΌμ μΈμνλλ‘ systemd λ°λͺ¬μ λ€μ λ‘λν©λλ€.
sudo systemctl daemon-reload
μλΉμ€ νμΌμ λν λ³κ²½ μ¬νμ μΈμνλλ‘ systemd λ°λͺ¬μ λ€μ λ‘λνλ κ²μ λλ€.
4. Jenkins μλΉμ€λ₯Ό λΆν μ μλ μμνλλ‘ μ€μ ν©λλ€.
sudo systemctl enable jenkins
κ²°κ³Ό
- Jenkins λΉμ μ μ’ λ£ μ Jenkins λ컀 컨ν μ΄λκ° μλμΌλ‘ μ€νλλ κ²μ νμΈνκΈ°
SIGABRT
λ‘ λΉμ μ μ’ λ£ λ¨
- μλ μ¬μ€ν λ¨
- λ‘κ·Έ
2. νΈμ€νΈ λ¨Έμ λΉμ μ μ’ λ£(reboot) μ Jenkins λ컀 컨ν μ΄λκ° μλμΌλ‘ μ€νλλ κ²μ νμΈνκΈ°
- systemctl enable λͺ λ Ήμ΄λ‘ reboot κ°λ₯ νμΈ!
systemd μλΉμ€ νμΌ μ€μ
[Service]
Restart=[no|on-success|on-failure|on-watchdog|on-abort|always]
- ν΄λΉ μ λμ΄ μ£½μμ λλ νΉμ
WatchdogSec
λ§νΌμ μκ° λμ μλ΅μ΄ μλ κ²½μ° μ¬μμνλ€. no
(κΈ°λ³Έκ°) : μ λμ λ€μ μμνμ§ μλλ€.on-success
: μ λμ΄ μ μμ μΌλ‘ μ’ λ£ λμμ λλ§ μ¬μμνλ€.- μ’
λ£ μ '0' κ°μ 리ν΄νμ¬ μ’
λ£ λμκ±°λ SIGHUP, SIGINT, SIGTERM, SIGPIPE λ±κ³Ό κ°μ μκ·Έλ λλ
SuccessExitStatus
μ€μ μμ μ§μ λ λ¦¬ν΄ μ½λ λͺ©λ‘μ λ°λ₯Έ μκ·Έλμ λν΄μ λͺ¨λ μ±κ³΅μΌλ‘ μΈμν΄ μ¬μμ νκ² λλ€.
- μ’
λ£ μ '0' κ°μ 리ν΄νμ¬ μ’
λ£ λμκ±°λ SIGHUP, SIGINT, SIGTERM, SIGPIPE λ±κ³Ό κ°μ μκ·Έλ λλ
on-failure
: μ λμ΄ λΉμ μμ μΌλ‘ μ’ λ£ λμμ λ μ¬μμνλ€.- 리ν΄κ°μ΄ '0' μ΄ μλ κ²½μ°, core dump μ κ°μ΄ λΉμ μμ μΈ μκ·Έλμ λ°κ³ μ’ λ£λ κ²½μ°, νμ μμκ° λ΄ μλ΅μ΄ μλ κ²½μ° λ± μ¬μμνλ€.
on-watchdog
:WatchdogSec
μ μ€μ λ μκ° λ΄ μλ΅μ΄ μλ κ²½μ°μλ§ μ¬μμνλ€.on-abort
: μ§μ λμ§ μμ 리ν΄κ°μ λ°μ κ²½μ° μ¬μμνλ€.always
: μ’ λ£ μν λ±κ³Ό 무κ΄νκ² λ¬΄μ‘°κ±΄ μ¬μμνλ€.- μ¬μ©μκ° μ€μ§ν΄λ μμ€ν μ΄ λ€μ λμμ§κ² λλ―λ‘ μ€μ λ μ λ μ€μ§ μ μ£Όμ νμ
μμ€ν 리μμ€ κ΄λ ¨ Limit μ€μ
sudo systemctl show jenkins | grep ^Limit
: 리μμ€λ³ μ€μ λ Limit κ° λͺ©λ‘ μ‘°ν
- LimitAS
- μλΉμ€μμ μ¬μ©ν μ μλ μ΅λ κ°μ λ©λͺ¨λ¦¬ 곡κ°
- infinity : μλΉμ€κ° νμν λ§νΌμ κ°μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©ν μ μλλ‘ μ ννμ§ μμ
- LimitRSS
- μλΉμ€μμ μ¬μ©ν μ μλ μ΅λ 물리 λ©λͺ¨λ¦¬ 곡κ°
- infinity : μλΉμ€κ° νμν λ§νΌμ RAMμ μ¬μ©ν μ μλλ‘ μ ννμ§ μμ
- LimitCORE
- μΆ©λ λ°μ μ μλΉμ€μμ μμ±ν μ μλ μ½μ΄ λ€ν νμΌμ μ΅λ ν¬κΈ°
- infinity : μ½μ΄ λ€ν νμΌ ν¬κΈ° μ ννμ§ μμ
- LimitNOFILE
- μλΉμ€κ° λμμ κ°μ§ μ μλ μ΄λ¦° νμΌ(νμΌ λμ€ν¬λ¦½ν°)μ μ΅λ κ°μ
- 1048576 : μ΅λ 1048576κ°μ μ΄λ¦° νμΌμ λμμ κ°μ§ μ μμ
μ΅λ μ€ν νμΌ μ μ€μ
- μ¬μ©μ κ³μ μ λν 리μμ€ μ νμ μ€μ νλ μμ€ν κ΅¬μ± νμΌ
- κ°λ³ μ¬μ©μλ νλ‘μΈμ€κ° μμ€ν μμμ λ μ νλ κ²μ λ°©μ§νκ³ , μμ ν λΉμ 보μ₯νκΈ° μν΄ μ¬μ©
/etc/security/limits.conf
- <domain> : μ νμ΄ μ μ©λλ λ²μλ₯Ό μ§μ
- @κ·Έλ£Ήλͺ
- μ¬μ©μλͺ
- * : λͺ¨λ μ¬μ©μ
- <type> : μ νμ μ ν μ§μ
- soft : μΌμμ μΌλ‘ μ΄κ³Όν μ μλ μ ν κ°
- hard : μ΄κ³Όν μ μλ μ΅λ κ°
- <item> : μ νλλ μμ μ§μ
- core : μ½μ΄ νμΌμ μ΅λ ν¬κΈ°
- data : μ΅λ λ°μ΄ν° ν¬κΈ°
- fsize : μ΅λ νμΌ ν¬κΈ°
- memlock : μ΅λ μ κΈ΄ λ©λͺ¨λ¦¬ μ£Όμ 곡κ°(물리μ RAMμ μ κΈ΄ μνλ‘ μ μ§νλ λ©λͺ¨λ¦¬ μ, λμ€ν¬λ‘ μ€μλμ§ μκ³ λΉ λ₯Έ μ‘μΈμ€κ° νμν λ)
- nofile : μ΅λ κ°λ°© νμΌ μ
- rss : μ΅λ λ μ§λνΈ μΈνΈ ν¬κΈ°(νλ‘μΈμ€κ° μ€μ RAMμ 보μ νκ³ μλ λ©λͺ¨λ¦¬μ μΌλΆ)
- stack : μ΅λ μ€ν ν¬κΈ°
- cpu : μ΅λ CPU μκ°
- nproc : μ΅λ νλ‘μΈμ€ μ
- as : μ£Όμ κ³΅κ° μ ν
- maxlogins : ν΄λΉ μ μ μ μ΅λ λ‘κ·ΈμΈ μ
- priority : μ μ μ°μ μμ
- locks : μ μ κ° κ°μ§κ³ μμ μ μλ μ΅λ νμΌ κ°μ
- <value> : μ§μ λ μμμ μ ν κ° μ μ
- μ€μ λ΄μ© μ μ©νλ λ°©λ² 2κ°μ§
- 1. μ¬λΆν
νκΈ°
ulimit -a
λ‘ λ¦¬μμ€ μ¬λ‘λνκΈ°
- 1. μ¬λΆν
νκΈ°
ulimit -a