Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
開発者(個人)のためのJenkins 運用編
Search
Yasuhiroki
November 08, 2017
Technology
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
開発者(個人)のためのJenkins 運用編
第11回 Jenkins勉強会 LT
Yasuhiroki
November 08, 2017
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
470
Android Studio `Command+Shift+A`
yasuhiroki
0
400
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
940
rails new コマンド
yasuhiroki
1
860
自動化を習慣化する
yasuhiroki
2
15k
GitHub Actions Parallel Testing
yasuhiroki
1
1.4k
circleci.vim
yasuhiroki
0
1.9k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
870
Rubyの正規表現を調べてみた
yasuhiroki
0
1k
Other Decks in Technology
See All in Technology
dbt in Microsoft Fabric
ryomaru0825
0
300
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
110
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
1
880
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
4
1.9k
Digitization部 紹介資料
sansan33
PRO
2
7.8k
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
360
Claude Codeの体系的な理解と知識のフック
oikon48
8
6k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
フィジカルAIの知識ゼロの僕でも AIを使えばここまでできた
tatsuya1970
0
200
OAuth SPIFFE Client Authentication(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
350
tamachi.goを支える技術
rymiyamoto
0
110
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.2k
How GitHub (no longer) Works
holman
316
150k
A better future with KSS
kneath
240
18k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Designing Powerful Visuals for Engaging Learning
tmiket
1
510
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
300
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
650
Become a Pro
speakerdeck
PRO
31
6.2k
Transcript
։ൃऀ(ݸਓ)ͷͨΊͷ Jenkins ӡ༻ฤ @yasuhiroki
@yasuhiroki
https://certificates.cloudbees.com/10203903
։ൃऀ(ݸਓ)ͷͨΊͷJenkins
ࢲͷࢲʹΑΔࢲͷͨΊͷJenkins • ผʹࣗͰͬͯྑ͍Μ͚ͩͲɺ ΘΓʹͬͯ͘ΕΔͳΒॿ͔Δ࡞ۀ • ۀͱͯࣗ͠ಈԽ͢Δ΄ͲͰͳ͍͚Ͳɺ ࣗಈԽͤͣʹ͍ΒΕͳ͔ͬͨ࡞ۀ • ༡ͼ
ͤͳੜ׆ ࠓૉ͔ɺφϕΞπ͔Λڭ͑ͯ͘ΕΔࣥࣄ
ࣥࣄޏ༻ܭը
ࣥࣄ͍ࣺͯ
ඞཁͳ࣌ʹޏ͍ ඞཁͷͳ͍࣌ղޏ͢Δ
Jenkinsͷߏங
ࢲͷͨΊͷJenkins͔ͩΒ ࢲͷ͖ͳΑ͏ʹߏங͢Δ
DockerͰJenkinsΛىಈ͢Δ • Docker • https://hub.docker.com/_/jenkins/ Ͱͳ͘ • https://hub.docker.com/r/jenkinsci/jenkins/ Ͱͳ͘ •
https://hub.docker.com/r/jenkins/jenkins/ ͚ͩͲ • https://store.docker.com/images/jenkins ͋Δ
JenkinsͷߏஙGitHubͰཧ • docker-compose • docker-compose.yml Λ GitHub Ͱཧ
ΧελϚΠζDockerfileͰ • Dockerfile • ࢲͷͨΊͷJenkinsͷॳظߏங • ࣗ༻ͷ Docker ΠϝʔδΛ DockerHub
ʹ push ͯ͠ྑ͍ • ࣗͷࣥࣄ͕ଞॴͰಇ͍ͯࣧౄ͠ͳ͍ਓʹݶΔ • ͋Β͔͡Ί༻ҙ͞Ε͍ͯΔػೳΛ͑ɺ DockerΠϝʔδΛ༻ҙ͠ͳͯ͋͘ΔఔಈతʹߏஙͰ͖Δ
*.override • ެࣜJenkins Docker ͷػೳ • config.xml.override ͳͲͱ༻ҙͨ͠ϑΝΠϧͰɺίϯς φىಈ࣌ʹݩͷϑΝΠϧʹ্ॻ͖͢Δ •
ڧͯ͘χϡʔήʔϜͰ͖Δ
install-plugin.sh • ެࣜJenkins Docker ͷػೳ • Πϯετʔϧ͍ͨ͠ plugin ͷҰཡΛॻ͍ͨϑΝΠϧΛ৯ ΘͤΔͱɺίϯςφىಈ࣌ʹ
ґଘ͢Δ plugin ؚΊͯΠ ϯετʔϧͯ͘͠ΕΔ • όʔδϣϯࢦఆՄೳ
-Djenkins.install.runSetupWizard=false • Jenkinsىಈ࣌ʹ͢JAVA_OPT • ॳճىಈ࣌ʹग़ͯ͘ΔɺΦεεϝϓϥάΠϯͷΠϯετʔ ϧηΩϡϦςΟઃఆͳͲΛεΩοϓͰ͖Δ • ࢲͷࢲʹΑΔࢲͷͨΊͷJenkinsʹෆཁͳͷͰઃఆ͢Δ
Jenkinsδϣϒͷཧ
ࢲͷͨΊͷJenkins͔ͩΒ ࢲ͕ϝϯςͰ͖Ε͍͍
GitHub Organization Plugin • Multibranch Pipeline ͷ GitHub ಛԽ൛ •
ࣗͷΞΧϯτΛࢦఆ͢Δ͚ͩͰɺJenkinsfile Λ࣋ͭ ϦϙδτϦΛݕग़ͯ͠উखʹϏϧυͯ͘͠ΕΔ • ࠓճ https://github.com/yasuhiroki/myJenkinsfile ͚ͩ Λݕग़͢ΔΑ͏ʹઃఆ
δϣϒ = ϒϥϯν • jobs/* ͱ͍͏໊લͷϒϥϯν͕ɺJenkinsͷδϣϒʹͳΔ Α͏ઃఆ͢Δ • jobs/sendo, jobs/today-is
ͳͲɺδϣϒຖʹϒϥϯνΛ࡞ Δ
git worktree ίϚϯυ • δϣϒ͝ͱʹ͍͍ͪͪ checkout ͢Δͷ໘ͳͷͰɺ git worktree ίϚϯυΛར༻͢Δ
• git worktree add jobs/today-is jobs/today-is ͱ͢Δͱɺ jobs/today-is σΟϨΫτϦʹ jobs/today-is ϒϥϯν͕ νΣοΫΞτ͞ΕΔ • ϒϥϯνͷ͚ͩσΟϨΫτϦΛ࡞ͬͯ checkout ͢Εɺ δϣϒͷઃఆ͕ू·ͬͨ jobs σΟϨΫτϦͷͰ͖͕͋Γ
Jenkinsfile • ࢲͷͨΊͷࣥࣄΛޏ͏ʹ Jenkinsfile ͕ඞਢ • https://jenkins.io/doc/book/pipeline/syntax/ ࣥࣄޏ༻ ϚχϡΞϧ
ϊʔυͷཧ
ϊʔυͷཧ2ύλʔϯ • Docker Pipeline plugin • jenkinsci/jnlp-slave Docker Πϝʔδ
Docker Pipeline plugin • JenkinsfileͰϏϧυΛ࣮ߦ͍ͨ͠ docker image Λࢦఆ͢ Δ •
Jenkinsίϯςφͱಉ͡ docker.sock Λ͏Α͏ઃఆ͢Ε ɺJenkinsίϯςφࣗମ৮ΕΔ • ༡ͼϙΠϯτ • ྫɿࣥࣄةػҰήʔϜ
jenkinsci/jnlp-slave • ϊʔυ༻ίϯςφΛىಈ͠JenkinsʹJNLPͰଓ͢Δ • ࣥࣄΛαϙʔτ͢ΔϝΠυతଘࡏ • େྔʹ༻ҙͯ͠ϝΠυୂΛ࡞Δͷ͕Φεεϝ • δϣϒͷϏϧυDocker PipelineͰࣄΓΔͷͰɺ
ϝΠυ͞Μͱ༡Ϳ͜ͱʹूத͢Δ͜ͱ
jenkinsci/jnlp-slave • *.override ͷػೳΛͬͯɺࣄલʹϊʔυͷใΛ Jenkinsʹ༻ҙ͓ͯ͘͠ͱॳظߏஙΛ΄΅ࣗಈԽͰ͖Δ • secret τʔΫϯҰ࡞ΒΕͨΒ JENKINS_HOME ҎԼ
Λ࡞Γ͞ͳ͍ݶΓಉ͡ͳͷͰࣗಈԽͰ͖Δ • ॳճ͚ͩखಈͰొ͕ඞཁ • groovy ͰΰϦΰϦΕશࣗಈԽͰ͖Δؾ͕͢Δ
·ͱΊ
JenkinsΛͰ͖Δ͚ͩImmutableͯ͠Έͨ • DockerͱGitHubͱJenkinsfileͰ͋ΔఔImmutableʹͰ͖Δ • GroovyεΫϦϓτͰΰϦΰϦ͠ͳͯ͘ɺ Chef Ansible ͰΰϦΰϦ͠ͳͯ͘ɺ ΦϨΦϨεΫϦϓτͰΰϦΰϦ͠ͳͯ͘ɺ
͋Δఔɺ࠶ߏஙՄೳͳJenkinsڥ͕खʹೖΔ ɹ˞ ͨͩ͠ Docker ͷ͕ࣝඞཁ • Ͱ͖Δ͚ͩJenkinsຊମͷઃఆΛݮΒ͢ͷ͕େࣄ
FIN