#author("2020-09-02T12:04:11+09:00","default:jomura","jomura")
#contents
#br
* Jenkinsの導入 [#z67e1a8a]
Jenkinsは、どのような方式でも導入は簡単ですが、本件では公式RPMで導入する。RPMで導入すると、Jenkinsの更新をyumコマンドで実施完了してしまえるメリットがある。
** 導入サーバの前提条件 [#ca05d364]
+ OSはRHEL8(or RHEL7)とする。 ※Java8以上が動けばなんでもよい
+ 事前導入するソフトウェアパッケージは最小構成。
+ インターネットに接続可能 ※必要ならproxy設定
/etc/yum.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}
+ パッケージの更新が事前に実行されている
yum clean all && yum -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: install Java11
yum:
name: java-11-openjdk
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: jenkins yum repository
yum_repository:
name: jenkins
description: jenkins YUM repo
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"
yum:
name: jenkins
state: latest
- name: "Jenkins service started"
service:
name: jenkins
state: started
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