AnsibleでGit 2.16.1をインストールする方法

はじめに

Ansibleを使用してGit 2.16.1をインストールします。
(本記事対象者)
– Ansibleに興味がある方
(検証内容)
– Ansibleを使用して、Gitをインストールします。
(Ansible実行環境)
– 仮想化ソフトウェア : Oracle VM VirtualBox 5.2.6
– OS : Fedora 27
– Ansible: 2.5.0
– インターネット接続 : 可能

1. インストールの準備を行う

1.1. ロールを作成する。

# cat roles/git_install/tasks/main.yml
---
- name: Install yum package
  yum:
   name: "{{ item }}"
  with_items:
   - curl-devel
   - expat-devel
   - gettext-devel
   - openssl-devel
   - zlib-devel
   - wget
   - gcc
   - cpan

- name: Get git binary
  unarchive:
    src: "{{ git_url }}"
    dest: "{{ git_temp_dir }}"
    remote_src: yes
  changed_when: false

- name: Make all git binary
  make:
    chdir: "{{ git_binary_dir }}"
    target: all
    params:
      prefix: "{{ git_prefix }}"
  changed_when: false

- name: Make install git binary
  make:
    chdir: "{{ git_binary_dir }}"
    target: install
    params:
      prefix: "{{ git_prefix }}"
  changed_when: false

- name: Remove file
  file:
    path: "{{ git_binary_dir }}"
    state: absent
  changed_when: false
# cat roles/git_install/vars/main.yml
-git_version: 2.16.1
git_prefix: /usr/local
git_temp_dir: /tmp
git_binary_dir: "{{ git_temp_dir }}/git-{{ git_version }}"
git_url: "https://www.kernel.org/pub/software/scm/git/git-{{ git_version }}.tar.gz"

1.2. site.ymlを作成する。

# cat site.yml
---
- name: Install git
  hosts: all
  gather_facts: false
  become: true
  roles:
   - git_install

2. インストールを行う

2.1. ansible-playbookを実行する。

# ansible-playbook -i inventory/local/hosts site.yml
PLAY [Install git] ***********************************************************************************************************

TASK [git_install : Install yum package] *************************************************************************************
changed: [test] => (item=[u'curl-devel', u'expat-devel', u'gettext-devel', u'openssl-devel', u'zlib-devel', u'wget', u'gcc', u'cpan'])

TASK [git_install : Get git binary] ******************************************************************************************
ok: [test]

TASK [git_install : Make all git binary] *************************************************************************************
ok: [test]

TASK [git_install : Make install git binary] *********************************************************************************
ok: [test]

TASK [git_install : Remove file] *********************************************************************************************
ok: [test]

PLAY RECAP *******************************************************************************************************************
test                       : ok=5    changed=1    unreachable=0    failed=0

2.2. Gitがインストールされていることを確認する。

# git --version
git version 2.16.1

まとめ

リファクタリングの実行は行っていません。
そのため、必要に応じてリファクタリングを実施していただければと思います。
Ansibleの発展に貢献できれば幸いです。

コメントを残す