{"id":1229,"date":"2017-11-20T10:38:00","date_gmt":"2017-11-20T08:38:00","guid":{"rendered":"http:\/\/metehantoksoy.com\/?p=1229"},"modified":"2017-11-20T10:38:00","modified_gmt":"2017-11-20T08:38:00","slug":"macos-sierra-uzerine-jenkins-kurulumu","status":"publish","type":"post","link":"https:\/\/metehantoksoy.com\/?p=1229","title":{"rendered":"macOS Sierra \u00dczerine Jenkins Kurulumu"},"content":{"rendered":"<p>Merhaba.\u00a0Bu yaz\u0131da DevOps s\u00fcrecinde kullan\u0131lan ara\u00e7lardan biri olan Jenkins&#8217;in macOS Sierra \u00fczerine kurulumu konusu<em><strong>\u00a0<\/strong><\/em>\u00fczerinde duraca\u011f\u0131z. DevOps&#8217;u ne oldu\u011fu hakk\u0131nda \u015fu kaynaklara g\u00f6z atabilirsiniz:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.acm-software.com\/acmblog\/devops-nedir\/\">ACM Software &#8211; DevOps Nedir?<\/a>\u00a0<em>(TR)<\/em><\/li>\n<li><a href=\"https:\/\/channel9.msdn.com\/Series\/Devops-temelleri\/DevOps-Nedir\">Channel9 &#8211; DevOps Nedir?<\/a>\u00a0<em>(TR)<\/em><\/li>\n<li><a href=\"https:\/\/theagileadmin.com\/what-is-devops\/\">The Agile Admin &#8211; What Is DevOps?<\/a>\u00a0<em>(EN)<\/em><\/li>\n<li><a href=\"https:\/\/www.atlassian.com\/devops\">Atlassian &#8211; DevOps<\/a>\u00a0<em>(EN)<\/em><\/li>\n<li><a href=\"https:\/\/aws.amazon.com\/devops\/what-is-devops\/\">Amazon &#8211; What Is DevOps?<\/a>\u00a0<em>(EN)<\/em><\/li>\n<\/ul>\n<h2>Jenkins Nedir?<\/h2>\n<p>Jenkins <a href=\"https:\/\/github.com\/jenkinsci\/jenkins\">a\u00e7\u0131k kaynak<\/a> kodlu\u00a0 bir <em><strong>S\u00fcrekli Entegrasyon<\/strong><\/em> (<em>Continious Integration &#8211; CI<\/em>) arac\u0131d\u0131r. Jenkins kullan\u0131larak projeler versiyon kontrolden otomatik olarak al\u0131nabilir, derlenebilir ve ilgili yerlere g\u00f6nderilebilir. \u00d6rne\u011fin bir Android uygulamas\u0131 derlenmesi, Jenkins&#8217;in versiyon kontrol de\u011fi\u015fiklik takibi ile otomatik olarak ba\u015flayabilir, derlenir, testi ko\u015fabilir, kodu analiz edilebilir, imzalan\u0131p versiyonlanabilir ve\u00a0 Google Play Store&#8217;a direkt y\u00fcklenebilir.\u00a0 B\u00fct\u00fcn bir i\u015fleri ko\u015fullara ba\u011flabilirsiniz; \u00f6rne\u011fin testten ge\u00e7medi\u011fi durumda Google Play Store y\u00fcklemesini iptal edip buildi fail durumuna d\u00fc\u015f\u00fcrebilirsiniz, build ba\u015far\u0131s\u0131z oldu\u011fu durumda mail g\u00f6ndertebilir veya HipChat&#8217;teki bir odaya mesaj g\u00f6ndertebilirsiniz. Yaz\u0131l\u0131m otomasyonu ad\u0131na ihtiya\u00e7lar\u0131n\u0131z\u0131 geni\u015f plugin deste\u011fi ile \u00e7\u00f6zebilirsiniz.<\/p>\n<p><!--more--><\/p>\n<p>\u00d6rne\u011fin; Smartface&#8217;de kurdu\u011fumuz sistemde bu s\u00fcreci \u015f\u00f6yle i\u015fletiyorduk:<\/p>\n<ul>\n<li>Jenkins \u00fczerinde bulunan <em><strong>Alpha<\/strong><\/em> task\u0131, versiyon kontrol \u00fczerindeki <strong><em>develop<\/em><\/strong> branchini 30 dakikada bir takip ediyor. E\u011fer son commit kendine ait de\u011filse buildi ba\u015flat\u0131r.<\/li>\n<li>Kaynak dosyalar\u0131 pull ettikten sonra SonarQube ile kaynak dosyalar\u0131 analiz eder, versiyonlama i\u015flemini yapar (<em>alpha s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltir<\/em>).<\/li>\n<li>Kaynak dosyalar\u0131 private npm&#8217;e publish eder.<\/li>\n<li><strong>JSDuck<\/strong> ile <em><strong>API Docs<\/strong><\/em> olu\u015fturur, onu da private <em><strong>Maven Repository<\/strong><\/em>&#8216;e y\u00fckler.<\/li>\n<li>Versiyon kontrol sisteminde versiyon kaynakl\u0131 de\u011fi\u015fikli\u011fini commitler ve o commiti versiyon ile tagler. Bunu da versiyon kontrol sistemine g\u00f6nderir.<\/li>\n<li>Ba\u015far\u0131l\u0131 veya ba\u015far\u0131s\u0131z oldu\u011fu durumlarda kurulu Philips Hue&#8217;nun ye\u015fil \u0131\u015f\u0131klar\u0131 yakar, HipChat&#8217;ten mesaj ve ilgili ki\u015filere mail g\u00f6nderir.<\/li>\n<\/ul>\n<p>Veya Yordam&#8217;da s\u00fcreci \u015fu \u015fekilde i\u015fletiyorum;<\/p>\n<ul>\n<li>Jenkins \u00fczerinde bulunan <em><strong>Beta<\/strong><\/em>\u00a0task\u0131, versiyon kontrol \u00fczerindeki <strong><em>pre-release<\/em><\/strong>\u00a0branchini 30 dakikada bir takip ediyor. E\u011fer son commit kendine ait de\u011filse buildi ba\u015flat\u0131r.<\/li>\n<li>Kaynak dosyalar\u0131 pull ettikten sonra SonarQube ile kaynak dosyalar\u0131 analiz eder, versiyonlama i\u015flemini yapar (<em>beta s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltir<\/em>).<\/li>\n<li>Kaynak proje Cep K\u00fct\u00fcphanem uygulamas\u0131n\u0131n iOS ve Android derlemelerini yapar.<\/li>\n<li>Derledi\u011fi uygulamalar\u0131 <strong>imzalar<\/strong> (<em>sign<\/em>)\u00a0ve onlar\u0131 da private <em><strong>Maven Repository<\/strong><\/em>&#8216;e y\u00fckler.<\/li>\n<li>Derlenen uygulamalar <strong>Apple TestFlight<\/strong> ve <strong>Google Play Store Beta<\/strong> \u00fczerinden servis edilir.<\/li>\n<li>Versiyon kontrol sisteminde de\u011fi\u015fiklikleri commitler ve o commiti versiyon ile tagler. Bunu da versiyon kontrol sistemine g\u00f6nderir.<\/li>\n<li>Ba\u015far\u0131l\u0131 veya ba\u015far\u0131s\u0131z oldu\u011fu durumlarda mail g\u00f6nderir.<\/li>\n<\/ul>\n<h2>macOS Sierra \u00dczerine Jenkins Kurulumu<\/h2>\n<p>Jenkins&#8217;i kurmadan \u00f6nce:<\/p>\n<ul>\n<li>Root yetkisi olan (administrator &#8211; y\u00f6netici) kullan\u0131c\u0131s\u0131 hesab\u0131nda oldu\u011funuzdan emin olun.<\/li>\n<li>Sisteminizde minimum <em><strong>JRE 7\u00a0<\/strong>veya<strong> JDK 7<\/strong><\/em> kurulu oldu\u011fundan emin olun. Java versiyonu \u00f6\u011frenmek i\u00e7in Terminal uygulamas\u0131na &#8220;<em><strong>java -version<\/strong><\/em>&#8221; yazabilirsiniz.<\/li>\n<\/ul>\n<p>1- Jenkins&#8217;i a\u015fa\u011f\u0131daki y\u00f6ntemlerle sisteminize y\u00fckleyebilirsiniz.<\/p>\n<ul>\n<li>Jenkins&#8217;in MacOS s\u00fcr\u00fcm\u00fcn\u00fc <a href=\"https:\/\/jenkins.io\/download\/thank-you-downloading-osx-installer-stable\/\">buradan<\/a> indirebilirsiniz (<em>Link k\u0131r\u0131l\u0131rsa <a href=\"https:\/\/jenkins.io\/download\/\">\u015furadan<\/a> Mac OS X&#8217;i se\u00e7ip indirebilirsiniz<\/em>).<\/li>\n<li>MacOS paket y\u00f6netim program\u0131 olan <a href=\"https:\/\/brew.sh\/\">Homebrew<\/a> ile kurabilirsiniz. Homebrew ile kurulumdan sonra 4. ad\u0131ma atlayabilirsiniz.\n<ul>\n<li>Son versiyon i\u00e7in:<br \/>\n<em><strong>brew install jenkins<\/strong><\/em><\/li>\n<li>LTS (<em>Uzun D\u00f6nemli Destek<\/em>) versiyonu i\u00e7in<br \/>\n<em><strong>brew install jenkins-lts<\/strong><\/em><\/li>\n<\/ul>\n<\/li>\n<li>Jenkins&#8217;i Docker Image ile de kullanabilirsiniz. Bu y\u00f6ntem bu yaz\u0131n\u0131n kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r. Bunun i\u00e7in <a href=\"https:\/\/jenkins.io\/doc\/book\/installing\/#docker\">\u015fu<\/a> makaleye g\u00f6z atabilirsiniz.<\/li>\n<\/ul>\n<p>2- \u0130ndirdi\u011finiz <strong><em>jenkins-VERSION.pkg<\/em><\/strong> dosyas\u0131n\u0131 t\u0131klayarak \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1237\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_1.png?w=300\" alt=\"\" width=\"300\" height=\"214\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_1.png 628w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_1-300x214.png 300w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p><strong>3<\/strong><em><strong>&#8211;<\/strong> Continue<\/em> ile devam edin, \u015fifre istedi\u011fi durumda bilgileri girin ve kurulumu tamamlay\u0131n.<\/p>\n<p><strong>4-<\/strong> Kurulumu tamamlad\u0131ktan sonra taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <em><strong>localhost:8080\u00a0<\/strong><\/em>adresine girin. 8080, Jenkins&#8217;in bu versiyonunda kullan\u0131lan varsay\u0131lan porttur. Kar\u015f\u0131n\u0131za a\u015fa\u011f\u0131daki gibi &#8220;<strong>Unlock Jenkins<\/strong>&#8221; yazan bir ekran \u00e7\u0131kacakt\u0131r.<\/p>\n<blockquote><p>Bu ekran \u00e7\u0131kmad\u0131\u011f\u0131 durumda Terminal&#8217;den &#8220;<em><strong>sudo launchctl load \/Library\/LaunchDaemons\/org.jenkins-ci.plist<\/strong><\/em>&#8221; komutu ile Jenkins&#8217;i ba\u015flayabilirsiniz.<\/p><\/blockquote>\n<p>Jenkins, kurulumu yapt\u0131ktan sonra MacOS s\u00fcr\u00fcmlerinde ba\u015flang\u0131\u00e7 i\u00e7in bir \u015fifre \u00fcretir ve bu \u015fifreyi g\u00f6sterdi\u011fi dosyaya ula\u015farak bir kerelik girmeniz gerekmektedir.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1239\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_3.png?w=300\" alt=\"\" width=\"300\" height=\"197\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_3.png 1023w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_3-300x197.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_3-768x504.png 768w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p><strong>5-<\/strong>\u00a0Ekranda g\u00f6sterilen dizinde &#8220;<strong>secrets\/<\/strong>&#8221; dizinine kadar Finder ile gidin. <em><strong>secrets<\/strong><\/em> klas\u00f6r\u00fcnde bir i\u015faret oldu\u011funu g\u00f6r\u00fcrseniz bu klas\u00f6r i\u00e7in <em><strong>okuma\/yazma yetkinizin olmad\u0131\u011f\u0131n\u0131<\/strong><\/em> anlayabilirsiniz.\u00a0Klas\u00f6r\u00fcne sa\u011f t\u0131k yap\u0131p <em><strong>Get Info<\/strong><\/em>&#8216;ya (<em>\u00d6zellikler<\/em>) t\u0131klay\u0131n.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1240\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_4.png?w=300\" alt=\"\" width=\"300\" height=\"238\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_4.png 782w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_4-300x238.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_4-768x609.png 768w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p><strong>6-<\/strong> Ard\u0131ndan sa\u011f a\u015fa\u011f\u0131da bulunan kilit simgesine t\u0131klayarak \u00f6zellikleri de\u011fi\u015ftirmeyi a\u00e7\u0131n. Ard\u0131ndan Sol a\u015fa\u011f\u0131da bulunan <em><strong>Sharing &amp; Permissions<\/strong><\/em> (<em>Payla\u015fma ve \u0130zinler<\/em>) &#8220;<strong>+<\/strong>&#8221; simgesine t\u0131klayarak kendi kullan\u0131c\u0131n\u0131z\u0131 (<em>\u015fu an oturumu a\u00e7\u0131k olan y\u00f6netici kullan\u0131c\u0131s\u0131<\/em>) ekleyin.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1242\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_6.png?w=231\" alt=\"\" width=\"231\" height=\"300\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_6.png 406w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_6-231x300.png 231w\" sizes=\"auto, (max-width: 231px) 85vw, 231px\" \/><\/a><\/p>\n<p><strong>7-<\/strong> Kullan\u0131c\u0131n\u0131za klas\u00f6r eri\u015fim yetkisi verdikten sonra klas\u00f6r\u00fcn i\u00e7ine girip <strong>initialAdminPassword\u00a0<\/strong>dosyas\u0131n\u0131 bir metin edit\u00f6r\u00fc ile (TextEdit, SublimeText gibi) a\u00e7\u0131n. \u0130\u00e7erisindeki \u015fifreyi kopyalay\u0131p taray\u0131c\u0131n\u0131zda ilgili alana yap\u0131\u015ft\u0131r\u0131n ve <strong>Continue<\/strong>\u00a0butonuna t\u0131klay\u0131n. Dosyay\u0131 a\u00e7arken &#8220;<em>Dosyay\u0131 okuma izniniz yok<\/em>&#8221; gibi bir hata al\u0131rsan\u0131z 6. ad\u0131m\u0131 bu dosya i\u00e7in tekrarlay\u0131n.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1244\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_8.png?w=300\" alt=\"\" width=\"300\" height=\"118\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_8.png 434w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_8-300x118.png 300w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a>\u00a0\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1243\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_7.png?w=300\" alt=\"\" width=\"300\" height=\"98\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_7.png 577w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_7-300x98.png 300w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/p>\n<p><strong>8-<\/strong> Kar\u015f\u0131n\u0131za <strong>Customize Jenkins<\/strong> yaz\u0131l\u0131 ekran gelecektir. H\u0131zl\u0131 kurulum i\u00e7in <strong>Install Suggested Plugins<\/strong> se\u00e7ene\u011fini se\u00e7ebilir veya\u00a0\u00a0<strong>Select plugins to Install<\/strong> ile se\u00e7erek kendiniz y\u00fcklenecek eklentileri belirleyebilirsiniz.<\/p>\n<blockquote><p>E\u011fer hangi pluginlere ihtiyac\u0131n\u0131z oldu\u011fu konusunda emin de\u011filseniz, <em>Install Suggested Plugins<\/em> se\u00e7ene\u011fi ile ilerleyebilirsiniz. Kurulum sonras\u0131nda ihtiyac\u0131n\u0131za g\u00f6re\u00a0<strong>Manage Jenkins (<em>Jenkins&#8217;i Y\u00f6net<\/em>)<\/strong> &gt; <strong>Manage Plugins (<em>Eklentileri Y\u00f6net<\/em>)<\/strong> sayfas\u0131ndan eklentileri y\u00fckleyip kald\u0131rabilirsiniz.<\/p><\/blockquote>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1248\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_12.png?w=300\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_12.png 1010w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_12-300x200.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_12-768x513.png 768w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p>Benim ihtiya\u00e7lar\u0131ma g\u00f6re y\u00fckledi\u011fim eklentiler \u015fu \u015fekilde:<\/p>\n<ul>\n<li>Authentication Tokens API Plugin<\/li>\n<li>Folders Plugin<\/li>\n<li>Build Timeout Plugin<\/li>\n<li>Credentials Binding Plugin<\/li>\n<li>Timestamper<\/li>\n<li>Workspace Cleanup Plugin<\/li>\n<li>Gradle Plugin<\/li>\n<li>Pipeline<\/li>\n<li>Git plugin<\/li>\n<li>SSH Slaves Plugin<\/li>\n<li>Matrix Authorization Plugin<\/li>\n<li>Mailer Plugin<\/li>\n<li>Email Extension Plugin<\/li>\n<li>Config File Provider Plugin<\/li>\n<li>Conditional BuildStep<\/li>\n<li>Parameterized Plugin<\/li>\n<li>Multijob Plugin<\/li>\n<li>Bitbucket Plugin<\/li>\n<li>Copy Artifact Plugin<\/li>\n<li>Environment Injector Plugin<\/li>\n<li>Google OAuth Credentials plugin<\/li>\n<li>Google Play Android Publisher Plugin<\/li>\n<li>jira-ext Plugin<\/li>\n<li>Run Condition Extras Plugin<\/li>\n<li>SonarQube Scanner for Jenkins<\/li>\n<li>Xcode integration<\/li>\n<\/ul>\n<p><strong>9-<\/strong> Eklentiler y\u00fcklendikten sonra <strong>Create First Admin User (<em>\u0130lk Y\u00f6netici Hesab\u0131 Olu\u015ftur<\/em>)\u00a0<\/strong>ekran\u0131 gelecektir. Burada Jenkins paneline eri\u015fmek i\u00e7in kullan\u0131c\u0131 bilgilerini girin. E\u011fer yerel a\u011f d\u0131\u015far\u0131s\u0131ndan eri\u015fme a\u00e7acaksan\u0131z g\u00fc\u00e7l\u00fc bir \u015fifre belirlemenizi \u00f6neririm.<\/p>\n<p><a href=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1251\" src=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_15.png?w=300\" alt=\"\" width=\"300\" height=\"197\" srcset=\"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_15.png 1016w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_15-300x197.png 300w, https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_setup_15-768x503.png 768w\" sizes=\"auto, (max-width: 300px) 85vw, 300px\" \/><\/a><\/p>\n<p>Bu a\u015famay\u0131 da tamamlad\u0131ktan sonra macOS Sierra \u00fczerinde \u00e7al\u0131\u015fan Jenkins kurulumunu tamamlad\u0131k. Art\u0131k yeni yeni i\u015f yaratabilir ve otomasyonu ba\u015flatabilirsiniz.<\/p>\n<h2>Jenkins Kullan\u0131c\u0131s\u0131n\u0131n Ayarlanmas\u0131<\/h2>\n<p>Jenkins kurulumunu tamamlad\u0131ktan sonra Jenkins kullan\u0131c\u0131s\u0131na hem b\u0131r \u015fifre hem de root yetkisi vermeniz gerekmektedir. Bunun sebebi \u00f6zellikle ortam\u0131n\u0131z\u0131 ayarlamak olacakt\u0131r; gerekli olan ayarlar\u0131 y\u00fckleyecek, iOS build i\u00e7in KeyChain ayarlar\u0131n\u0131z\u0131 yapacaks\u0131n\u0131z gibi.<\/p>\n<p><strong>1-<\/strong>\u00a0<em><strong>System Preferences<\/strong><\/em>&#8216;a (<em>Sistem Ayarlar\u0131<\/em>) girin. Ard\u0131ndan <em><strong>Users and Groups<\/strong><\/em>&#8216;a (<em>Kullan\u0131c\u0131lar ve Gruplar<\/em>) girin.<\/p>\n<p><strong>2-<\/strong> Sol altta bulunan kilit simgesine t\u0131klayarak \u015fifre istemesi durumunda \u015fifrenizi girerek ayarlar\u0131 de\u011fi\u015ftirmeyi aktifle\u015ftirin.<\/p>\n<p><strong>3-<\/strong> Jenkins kullan\u0131c\u0131s\u0131n\u0131 se\u00e7in ve <strong>Administator<\/strong> (<em>Y\u00f6netici<\/em>) alan\u0131n\u0131 i\u015faretleyin, ard\u0131ndan \u015fifresini belirleyin. \u00d6zellikle bu CI makinesine uzaktan (\u00f6zellikle ssh) ile ba\u011flanacaksan\u0131z \u015fifresini g\u00fc\u00e7l\u00fc bir \u015fifre se\u00e7menizde fayda var; istenmeyen misafirlerin ayarlar\u0131n\u0131z\u0131 de\u011fi\u015ftirip hatta proje kodlar\u0131n\u0131z\u0131 vs. \u00e7almas\u0131n\u0131 istemezsiniz.<\/p>\n<p>Ard\u0131ndan sisteminizi yeniden ba\u015flat\u0131n ve \u015fu anki kullan\u0131c\u0131za tekrar girin. Yap\u0131lacak ufak b\u0131r ayarlama daha var.<\/p>\n<h2>Jenkins&#8217;i\u00a0Launch Daemons Olarak Belirleme<\/h2>\n<p>Bir CI makinesi kurdu\u011fumuz i\u00e7in, bu makinenin <em><strong>Jenkins<\/strong><\/em>, <em><strong>SonarQube<\/strong><\/em> veya <em><strong>Sonatype Nexus Repository<\/strong><\/em> gibi ara\u00e7lar\u0131n\u0131 kendisi ba\u015flatabilmesi gerekir. Jenkins, bunun i\u00e7in kendisini varsay\u0131lan olarak&#8221;<em><strong>Launch Daemon&#8221;<\/strong><\/em> olarak belirler. Fakat baz\u0131 durumlarda bu ger\u00e7ekle\u015fmez ve Jenksin sistem ba\u015flad\u0131\u011f\u0131nda ba\u015flamaz. Bu durumda Jenkins&#8217;s el ile <em><strong>Launch Daemon<\/strong><\/em> olarak belirlemek gerekir.<\/p>\n<p>Burada, &#8220;<em><strong>Launch Agent&#8221;<\/strong><\/em> ile &#8220;<em><strong>Launch Deamon<\/strong><\/em>&#8221; aras\u0131ndaki farka k\u0131saca de\u011finmek gerekir.<\/p>\n<h3>Launch Daemon<\/h3>\n<p>Sistem boot olduktan ve kernel \u00e7al\u0131\u015f\u0131r hale geldikten sonra\u00a0<em><strong>launchd<\/strong><\/em>\u00a0sistemi y\u00fcklemek i\u00e7in \u00e7al\u0131\u015f\u0131r.\u00a0Launch Deamon&#8217;lar:<\/p>\n<ul>\n<li>&#8220;<em><strong>\/System\/Library\/LaunchDaemons\/<\/strong><\/em>&#8221; ve &#8220;<em><strong>\/Library\/LaunchDaemons\/<\/strong><\/em>&#8221; dizinlerinde property list file (<em>.plist<\/em>) parametrelerine g\u00f6re y\u00fcklenirler.<\/li>\n<li>Herhangi bir kullan\u0131c\u0131ya ba\u011fl\u0131 de\u011fildir. boot sonras\u0131 sistemde herhangi bir kullan\u0131c\u0131 oturumu a\u00e7\u0131lmas\u0131n\u0131 beklemeden neredeyse sistemle birlikte y\u00fcklenirler<\/li>\n<li>GUI (Kullan\u0131c\u0131 Aray\u00fcz\u00fc) ile etkile\u015fimde olmazlar.<\/li>\n<\/ul>\n<h3>Launch Agent<\/h3>\n<p>Herhangi bir kullan\u0131c\u0131 oturum a\u00e7t\u0131ktan sonra\u00a0<em><strong>launchd<\/strong><\/em>\u00a0kullan\u0131c\u0131 i\u00e7in \u00e7al\u0131\u015f\u0131r.\u00a0Launch Agent&#8217;lar:<\/p>\n<ul>\n<li>&#8220;<em><strong>\/System\/Library\/LaunchAgents<\/strong><\/em>&#8220;, &#8220;<em><strong>\/Library\/LaunchAgents<\/strong><\/em>&#8220;, ve her kullan\u0131c\u0131n\u0131n dizininde bulunan &#8220;<em><strong>~\/Library\/LaunchAgents<\/strong><\/em>&#8221; dizinlerinde property list file (.plist) parametrelerine g\u00f6re y\u00fcklenirler.<\/li>\n<li>Her kullan\u0131c\u0131ya ve sistemin ayarlar\u0131na ba\u011fl\u0131d\u0131r. Yani sistemin her kullan\u0131c\u0131 i\u00e7in ortak \u00e7al\u0131it\u0131rd\u0131klar\u0131 ve her kullan\u0131c\u0131n\u0131n kendi dizininde bulunan kendine ait \u00e7al\u0131\u015ft\u0131rd\u0131klar\u0131 vard\u0131r. Kullan\u0131c\u0131 oturumu a\u00e7\u0131lmadan y\u00fcklenmez.<\/li>\n<li>GUI (Kullan\u0131c\u0131 Aray\u00fcz\u00fc) ile etkile\u015fimde olabilirler.<\/li>\n<\/ul>\n<p><em><strong>Launch Daemons<\/strong><\/em> ve <em><strong>Agents<\/strong><\/em> hakk\u0131nda daha detayl\u0131 bilgi i\u00e7in <a href=\"https:\/\/developer.apple.com\/library\/content\/documentation\/MacOSX\/Conceptual\/BPSystemStartup\/Chapters\/CreatingLaunchdJobs.html\">Apple Developer &#8211; Creating Launch Daemons and Agents<\/a>\u00a0makalesini okuyabilir, <em><strong>launchd<\/strong><\/em> i\u00e7in <a href=\"https:\/\/www.howtogeek.com\/319048\/what-is-launchd-and-why-is-it-running-on-my-mac\/\">\u015furaya<\/a> g\u00f6z atabilirsiniz.<\/p>\n<p>&#8220;<em><strong>\/Library\/LaunchDaemons\/<\/strong><\/em>&#8221; dizinin kontrol edin ve &#8220;<em><strong>org.jenkins-ci.plist<\/strong><\/em>&#8221; dosyas\u0131n\u0131n varoldu\u011fundan emin olun. E\u011fer bu dosya mevcut de\u011filse Jenkins boot sonras\u0131nda ba\u015flat\u0131lmayacak demektir. Bunu \u00e7\u00f6zmek i\u00e7in kendi y\u00f6netici hesab\u0131n\u0131za girin ve <em><strong>&#8220;\/Library\/Preferences\/org.jenkins-ci.plist&#8221;\u00a0<\/strong><\/em>dizinindeki dosyay\u0131\u00a0&#8220;<em><strong>\/Library\/LaunchDaemons\/<\/strong><\/em>&#8221; dizinine kopyalay\u0131n. Bunun i\u00e7in Terminal&#8217;de a\u015fa\u011f\u0131daki kod par\u00e7as\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<blockquote><p>sudo cp\u00a0\/Library\/Preferences\/org.jenkins-ci.plist\u00a0\/Library\/LaunchDaemons\/<\/p><\/blockquote>\n<p>Sisteminizi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<p>Bu yaz\u0131 Jenkins <strong>2.73.3<\/strong> s\u00fcr\u00fcm\u00fc kullan\u0131larak yaz\u0131lm\u0131\u015ft\u0131r. Farkl\u0131 versiyonlarda ekran g\u00f6r\u00fcnt\u00fcler ve yap\u0131lmas\u0131 gereken i\u015flemler farkl\u0131l\u0131k g\u00f6sterebilir. Jenkins&#8217;in resmi y\u00fckleme d\u00f6k\u00fcmantasyonuna <a href=\"https:\/\/jenkins.io\/doc\/book\/installing\/\">Jenkins User Documentation &#8211; Installing Jenkins<\/a>\u00a0linkinden ula\u015fabilirsiniz.<\/p>\n<p>Sonraki yaz\u0131larda Jenkins&#8217;i \u00f6zelle\u015ftirme, job olu\u015fturma, basit ve geli\u015fmi\u015f konfig\u00fcrasyon, kar\u015f\u0131la\u015ft\u0131\u011f\u0131m problemlerle ve kulland\u0131\u011f\u0131m di\u011fer ara\u00e7lar\u0131n kurulum ve \u00f6zelle\u015ftirmeleriyle devam edece\u011fiz.\u00a0Sormak istedi\u011finiz bir soru\u00a0olursa bu yaz\u0131n\u0131n alt\u0131na yorum yazabilir veya <a href=\"mailto:metehantoksoy@gmail.com\">metehantoksoy@gmail.com\u00a0<\/a>adresimden bana e-posta\u00a0atabilirsiniz.<\/p>\n<p>Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015fmek dile\u011fiyle. Takipte kal\u0131n!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhaba.\u00a0Bu yaz\u0131da DevOps s\u00fcrecinde kullan\u0131lan ara\u00e7lardan biri olan Jenkins&#8217;in macOS Sierra \u00fczerine kurulumu konusu\u00a0\u00fczerinde duraca\u011f\u0131z. DevOps&#8217;u ne oldu\u011fu hakk\u0131nda \u015fu kaynaklara g\u00f6z atabilirsiniz: ACM Software &#8211; DevOps Nedir?\u00a0(TR) Channel9 &#8211; DevOps Nedir?\u00a0(TR) The Agile Admin &#8211; What Is DevOps?\u00a0(EN) Atlassian &#8211; DevOps\u00a0(EN) Amazon &#8211; What Is DevOps?\u00a0(EN) Jenkins Nedir? Jenkins a\u00e7\u0131k kaynak kodlu\u00a0 bir S\u00fcrekli &hellip; <a href=\"https:\/\/metehantoksoy.com\/?p=1229\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;macOS Sierra \u00dczerine Jenkins Kurulumu&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1256,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[64,66,74,144,151,152,160,199,230,248],"class_list":["post-1229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-cd","tag-ci","tag-continuous-integration","tag-jenkins","tag-launch-agent","tag-launch-daemon","tag-mac","tag-plugins","tag-sierra","tag-unlock-jenkins"],"jetpack_featured_media_url":"https:\/\/metehantoksoy.com\/wp-content\/uploads\/2017\/11\/jenkins_logo.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/1229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1229"}],"version-history":[{"count":0,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/posts\/1229\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=\/wp\/v2\/media\/1256"}],"wp:attachment":[{"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/metehantoksoy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}