Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to run on Fedora #51

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ have to edit any of these variables.

```yml
# List of packages to be installed.
docker__package_dependencies:
docker__apt_package_dependencies:
- "apt-transport-https"
- "ca-certificates"
- "cron"
Expand All @@ -317,6 +317,19 @@ docker__apt_repository: >
{{ ansible_distribution_release }} {{ docker__channel | join (' ') }}
```

### Configuring the DNF package manager

Docker requires a few dependencies to be installed for it to work. You shouldn't
have to edit this variable.

```yml
# List of packages to be installed.
docker__dnf_package_dependencies:
- "ca-certificates"
- "cronie"
- "gnupg2"
- "libselinux-python"

### Installing Python packages with Virtualenv and PIP

#### Configuring Virtualenv
Expand All @@ -337,9 +350,15 @@ PIP package.
```yml
# This will attempt to install the correct version of PIP based on what your
# configured Ansible Python interpreter is set to (ie. Python 2 or 3).
docker__pip_dependencies:
docker__apt_pip_dependencies:
- "python-setuptools"
- "python{{ '3' if ansible_python.version.major == 3 else '' }}-pip"

docker__dnf_pip_dependencies:
- "python{{ ansible_python.version.major }}"
- "python{{ ansible_python.version.major }}-pip"
- "python{{ ansible_python.version.major }}-libs"
- "python{{ ansible_python.version.major }}-setuptools"
```

#### Installing PIP packages
Expand Down
16 changes: 14 additions & 2 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,24 +31,36 @@ docker__cron_jobs:
cron_file: "docker-disk-clean-up"
user: "{{ (docker__users | first) | d('root') }}"

docker__package_dependencies:
docker__apt_package_dependencies:
- "apt-transport-https"
- "ca-certificates"
- "cron"
- "gnupg2"
- "software-properties-common"

docker__dnf_package_dependencies:
- "ca-certificates"
- "cronie"
- "gnupg2"
- "libselinux-python"

docker__apt_key_id: "9DC858229FC7DD38854AE2D88D81803C0EBFCD88"
docker__apt_key_url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg"
docker__apt_repository: >
deb [arch=amd64]
https://download.docker.com/linux/{{ ansible_distribution | lower }}
{{ ansible_distribution_release }} {{ docker__channel | join (' ') }}

docker__pip_dependencies:
docker__apt_pip_dependencies:
- "python-setuptools"
- "python{{ '3' if ansible_python.version.major == 3 else '' }}-pip"

docker__dnf_pip_dependencies:
- "python{{ ansible_python.version.major }}"
- "python{{ ansible_python.version.major }}-pip"
- "python{{ ansible_python.version.major }}-libs"
- "python{{ ansible_python.version.major }}-setuptools"

docker__pip_virtualenv: "/usr/local/lib/docker/virtualenv"

docker__default_pip_packages:
Expand Down
35 changes: 35 additions & 0 deletions tasks/apt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---

- name: Disable pinned Docker version
file:
dest: "/etc/apt/preferences.d/docker-ce.pref"
state: "absent"
when: not docker__version | d()

- name: Enable pinned Docker version
template:
src: "etc/apt/preferences.d/docker-ce.pref.j2"
dest: "/etc/apt/preferences.d/docker-ce.pref"
owner: "root"
group: "root"
mode: "0644"
when: docker__version | d()

- name: Install Docker's dependencies
apt:
name: "{{ docker__apt_package_dependencies + docker__apt_pip_dependencies }}"

- name: Add Docker's public PGP key to the APT keyring
apt_key:
id: "{{ docker__apt_key_id }}"
url: "{{ docker__apt_key_url }}"

- name: Configure Docker's upstream APT repository
apt_repository:
repo: "{{ docker__apt_repository }}"
update_cache: true

- name: Install Docker
apt:
name: "docker-{{ docker__edition }}"
state: "{{ docker__state }}"
32 changes: 32 additions & 0 deletions tasks/dnf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
# Installing docker via https://docs.docker.com/install/linux/docker-ce/fedora/

- name: Old Docker versions are absent
dnf:
name: "{{ item }}"
state: absent
loop:
- 'docker'
- 'docker-client'
- 'docker-client-latest'
- 'docker-common'
- 'docker-latest'
- 'docker-latest-logrotate'
- 'docker-logrotate'
- 'docker-selinux'
- 'docker-engine-selinux'
- 'docker-engine'

- name: Docker's Repository is added
get_url:
url: https://download.docker.com/linux/fedora/docker-ce.repo
dest: /etc/yum.repos.d/docker-ce.repo

- name: Install Docker's dependencies
dnf:
name: "{{ docker__dnf_package_dependencies + docker__dnf_pip_dependencies }}"

- name: Install Docker
dnf:
name: "docker-{{ docker__edition }}"
state: "{{ docker__state }}"
35 changes: 2 additions & 33 deletions tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
---

- name: Disable pinned Docker version
file:
dest: "/etc/apt/preferences.d/docker-ce.pref"
state: "absent"
when: not docker__version | d()

- name: Enable pinned Docker version
template:
src: "etc/apt/preferences.d/docker-ce.pref.j2"
dest: "/etc/apt/preferences.d/docker-ce.pref"
owner: "root"
group: "root"
mode: "0644"
when: docker__version | d()

- name: Install Docker's dependencies
apt:
name: "{{ docker__package_dependencies + docker__pip_dependencies }}"

- name: Add Docker's public PGP key to the APT keyring
apt_key:
id: "{{ docker__apt_key_id }}"
url: "{{ docker__apt_key_url }}"

- name: Configure Docker's upstream APT repository
apt_repository:
repo: "{{ docker__apt_repository }}"
update_cache: true

- name: Install Docker
apt:
name: "docker-{{ docker__edition }}"
state: "{{ docker__state }}"
- name: Include Appropriate Package Management
include_tasks: "{{ ansible_pkg_mgr }}.yml"

- name: Check for existing Docker Compose file
stat:
Expand Down
Empty file added tasks/yum.yml
Empty file.