CentOS7にJenkinsを入れようとしたけど、systemd+firewalldをどうやって設定するんだろうと思ったので。
ちゃんと公式に書いてありました。
Installing Jenkins as a Unix daemon - Jenkins - Jenkins Wiki
実際はfirewalldの設定も必要なので、合わせて。
環境
firewalld
まずはfirewallの設定から。
httpをベースにすればいいかなーと /usr/lib/firewalld/services/http.xml をコピペして作る・・・というほどでもなくて、これだけ書く。
[service名].xmlで作ることと、<port protocol="tcp" port="8080"/> を書いておけばよい感じ。
習慣的にservice名を合わせてるけど、firewalldとsystemdが内部で連携してくれるのかはよくわからない。
descriptionはよくわからない。
sudo tee /etc/firewalld/services/jenkins.xml << '__EOF__' <?xml version="1.0" encoding="utf-8"?> <service> <short>Jenkins</short> <description>Jenkins(HTTP)</description> <port protocol="tcp" port="8080"/> </service> __EOF__
あとはfirewalldにこのserviceのポートを開けてもらうようにお願いする。
sudo firewall-cmd --add-service=jenkins --zone=public --permanent sudo firewall-cmd --reload # 確認 sudo firewall-cmd --list-services --zone=public
確認で jenkins の文字が含まれていればOK。
systemd
公式から持ってくる。環境設定分を適当に置き換える。
sudo tee /etc/systemd/system/jenkins.service << '__EOF__' [Unit] Description=Jenkins Daemon [Service] ExecStart=/usr/local/jdk/bin/java -jar /home/jenkins/jenkins.war User=jenkins [Install] WantedBy=multi-user.target __EOF__
あとはsystemctlで自動起動設定をして起動するだけ。
sudo systemctl enable jenkins.service sudo systemctl start jenkins.service # 確認 sudo systemctl status jenkins.service
あとはrebootしても勝手に起動することを確認すればよろし。