#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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS