GitLabの導入 †
GitLabは公式Webサイトで公開されている「Official Linux packageパッケージ」を利用して導入する。必要なソフトウェアを一括して導入できる。https://packages.gitlab.com に接続できれば可能。
dockerを用いて導入すると、tcp:22をdocker側にバインドするのが少し気になるので。
導入サーバの前提条件 †
- OSはRHEL8(or RHEL7)とする。
- 事前導入するソフトウェアパッケージは最小構成。
- インターネットに接続可能 ※必要なら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
- Gitlab Webサイト用のFully Qualified Domain Name(FQDN)が用意されている。
playbookの作成 †
- Ansibleサーバ上の一般ユーザで実行
- sudoの場合、become_method: sudo
cat << "_EOF_" > pb_gitlab_server.yml
# install gitlab
- hosts: gitlab_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 rpms
yum:
name: ['curl', '
{%- if ansible_distribution_major_version|int == 7 -%}
policycoreutils-python
{%- else -%}
policycoreutils
{%- endif -%}
', 'openssh-server', 'tar']
state: latest
- name: firewalld
firewalld:
service: "{{ item }}"
permanent: true
state: enabled
immediate: yes
loop:
- http
- https
- name: Download check script
get_url:
url: https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh
dest: /usr/local/src
mode: '0755'
- name: Run script.rpm.sh
shell: bash script.rpm.sh
args:
chdir: /usr/local/src
register: result
changed_when: '"行うべきことはありません。" not in result.stdout'
- name: Install gitlab-ce
yum:
name: gitlab-ee
state: latest
environment:
EXTERNAL_URL: http://{{ inventory_hostname }}
# notify:
# - gitlab-ctl reconfigure
handlers:
- name: gitlab-ctl reconfigure
shell: gitlab-ctl reconfigure
_EOF_
playbookの実行 †