|
#author("2020-12-12T19:50:11+09:00","default:jomura","jomura") #author("2020-12-12T19:51:16+09:00","default:jomura","jomura") #contents #br * Jenkinsの導入 [#z67e1a8a] Jenkinsは、どのような方式でも導入は簡単ですが、本件では公式RPMで導入する。RPMで導入すると、Jenkinsの更新をyumコマンドで実施完了してしまえるメリットがある。 ** 導入サーバの前提条件 [#ca05d364] + OSはRHEL8(or RHEL7)とする。 ※Java8以上が動けばなんでもよい + 事前導入するソフトウェアパッケージは最小構成。 + インターネットに接続可能 ※必要ならproxy設定 /etc/dnf/dnf.conf proxy=http://proxy.jomura.net:8080/ #as your own ~/.bashrc export HTTP_PROXY=http://proxy.jomura.net:8080/ #as your own export HTTPS_PROXY=${HTTP_PROXY} + パッケージの更新が事前に実行されている dnf clean all && dnf -y update && reboot + Jenkins Webサイト用のFully Qualified Domain Name(FQDN)が用意されている。 ** playbookの作成 [#f72609cb] - Ansibleサーバ上の一般ユーザで実行 - sudoの場合、become_method: sudo cat << "_EOF_" > pb_jenkins_server.yml # install jenkins - hosts: jenkins_servers become: true become_method: su environment: "{{ proxy_env }}" tasks: - name: facts check fail: msg: "Not compatible with [{{ ansible_os_family }}] {{ ansible_distribution }} {{ ansible_distribution_major_version }}." when: ansible_os_family != 'RedHat' or ansible_distribution_major_version|int < 7 - name: jenkins repository yum_repository: name: jenkins description: jenkins repos baseurl: "http://pkg.jenkins.io/redhat-stable/" - name: jenkins.io key installed rpm_key: key: "http://pkg.jenkins.io/redhat-stable/jenkins.io.key" - name: "Jenkins installed" dnf: name: - java-11-openjdk - jenkins state: latest - name: port forward shell: firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent register: result changed_when: '"Warning: ALREADY_ENABLED: " not in result.stderr' notify: reload firewalld - name: restart jenkins systemd: name: jenkins state: restarted daemon_reload: yes enabled: yes handlers: - name: reload firewalld service: name=firewalld state=restarted _EOF_ - Java11 - Jenkins自体はtcp:8080で稼働し、firewalldでtcp:80からforwardさせる ** playbookの実行 [#cd6b3e5e] - Ansibleサーバ上の一般ユーザで実行する。 ansible-playbook -i inventory.yml pb_jenkins_server.yml