Jenkins2系 移行&運用メモ

【 2017/03/10 12:13 】by 月琴かりん

Https運用

リパプロ

  • なんか昔はajp経由してたけど、普通にHTTPS環境作って、mod_proxy でリバプロすれば大丈夫。

Job叩くのって?

Job/Pipeline側でパラメータを一つも定義していないときに、前者を呼ぶとエラーになるので注意

wget -O /dev/null --no-check-certificate --auth-no-challenge --http-user=${USER} --http-password=${USER_TOKEN} "https://${URL}/${JOB_PATH}/buildWithParameters?token=${JOB_TOKEN}&FOO=BAR"
wget -O /dev/null --no-check-certificate --auth-no-challenge --http-user=${USER} --http-password=${USER_TOKEN} "https://${URL}/${JOB_PATH}/build?token=${JOB_TOKEN}"

Pipeline

  • 便利便利とききつつも、groovyとかいう謎の言語障壁に尻込みして、なかなか移行できないでいたが、やってみると簡単&便利ー

管理

  • github オーガ云々必須?とか勘違いしてたけどそんなことない。普通にgitのリポジトリとファイル指定するだけでいい。
    • ベタで書くこともできるけど、リポジトリで管理する方が圧倒的に楽。

groovy入門

最低限はDSLとしてのgroovyを覚えてればOK。
スクリプト内で判定したり、細かい分岐したくなったら、都度文法みればいいと思う。

groovy & emacs

(require 'groovy-mode)
(autoload 'groovy-mode "groovy-mode"
  "Major mode for editing Groovy files" t)
  (add-to-list 'auto-mode-alist '("\\Jenkinsfile$" . groovy-mode)) 

Jenkins用のgroovy

JenkinsのいままでWebで設定してた項目をスクリプトで書くって、どう対応してるのかわかんねーよ!!
って不安だったけど、JenkinsにGroovyのSnippet Generatorが内蔵されてて、
そこで、いままでと同じように値をいれてGenerateすると、対応するコードが吐かれるので、コピペすればいい!

追加でPluginいれたとき、それに対応するコードって??

  • 追加でPluginを入れると、対応していれば、Generatorにオプションが増えて対応するコードが増える。
    • パイプラインとの互換性
      • https://github.com/jenkinsci/pipeline-plugin/blob/master/COMPATIBILITY.md

Pipeline中でWorkspaceのファイルをノード間で受け渡ししたい

  • Jenkins パイプラインの stash/unstash で ノード間でファイル転送
    • stashっていうと、git stashのイメージを持っていたけど、実際は違った。ノード間でファイル転送するのに使えて便利。
      • http://arasio.hatenablog.com/entry/2016/10/19/001944

コマンドラインからjson生成

  • https://github.com/jpmens/jo
    • ダブルクオートをgroovyで書くのはちょっとめんどい

pipelineからTwitter通知

  • 対応するPluginはない。
    • コマンドラインツールをシェル経由で呼ぶ、、が一番楽。

$classってなんだよ

  • コンテキストみたいなもの?よくわからんし、ググってもまともな説明にたどり着けない...誰かに聞こう。。

WindowsのSlave運用アレコレ

Network絡みのテストをする上で注意すべきFirewall

  • ネットワーク権限の設定がWindowsのOSでバッラバラなのにそもそも注意

    • http://www.atmarkit.co.jp/ait/articles/1509/07/news018.html
  • Windows10のファイアーウォール制御ポップアップの癖

    • どうもバイナリの配置場所で判断してるっぽい。
      • ゆえに新しいJobで一発目に回す場合、確定でポップアップが出てフィルタリングがAPDF挙動になる。
        • ワークスペースをクリアしても、デプロイ後のパスが一致さえしてれば、二回目以降は大丈夫。
          • WindowsのAPIで移動したりRenameする場合に限って、設定が引き継がれるっぽい?(未確定)
  • Windows10のDNSの嫌なくせ

    • ルータ切り替えたときに、稀にDNSの参照が切り替わらない問題
      • 一度失敗して、もう一回リトライするとクリアされて治るような?

Pipeline中でのmsbuild

  • MSBuildをPiplelineから呼ぶにはbat経由になる(MSBuild Plugin は Pipeline非対応なので...)

    • https://github.com/jenkinsci/pipeline-examples/tree/master/jenkinsfile-examples/msbuild
  • MSBuild.exe ってなんかいっぱいあるけど、どれにパス通せばええねん。。

    • MSが糞。archごとのmsbuildに分けられてて、本当に呼ぶべきフロントエンドのMSBuildは

MSBuildToolsPath: このプロパティは、32 ビット オペレーティング システムでは %ProgramFiles%\MSBuild\12.0\bin になり、64 ビット オペレーティング システムでは %ProgramFiles%\MSBuild\12.0\bin\amd64 になります。 https://msdn.microsoft.com/ja-jp/library/hh162058.aspx

ただ、これも恒常的かというと、きっとそうでも無いんだろうなー。はーMSクソクソ。

macOSのSlave運用アレコレ

XCodeのCIビルド時の注意

  • 事前にAppleID登録をすませておくこと
  • xcodeをコミットする時は、shema定義ファイルもつけましょう、って話。(標準だと吐かれない)
    • http://qiita.com/192agur2/items/6e8f5c98fc3d00d896ca

Link Infomation

alomarron

サイト内検索