refactor ansible code in to ansible-2.0 folder, and created space for ansible-2.10
This commit is contained in:
26
ansible-2.0/roles/dockerhost/tasks/fstab.yml
Normal file
26
ansible-2.0/roles/dockerhost/tasks/fstab.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
|
||||
- name: create mount points
|
||||
file:
|
||||
path: "{{ item.value.mount }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
with_dict: gluster
|
||||
|
||||
- name: create glusterfs mount hosts file entries
|
||||
lineinfile:
|
||||
state: present
|
||||
dest: /etc/fstab
|
||||
insertafter: EOF
|
||||
regexp: '^#?{{ item.value.host }}'
|
||||
line: '{{ item.value.host }} {{ item.value.mount }} glusterfs direct-io-mode=disable,defaults,_netdev 0 0'
|
||||
with_dict: gluster
|
||||
|
||||
- name: remove glusterfs mount hosts file entries
|
||||
lineinfile:
|
||||
state: absent
|
||||
dest: /etc/fstab
|
||||
insertafter: EOF
|
||||
regexp: '^#?{{ item.value.host }}'
|
||||
line: '{{ item.value.host }} {{ item.value.mount }} glusterfs direct-io-mode=disable,defaults,_netdev 0 0'
|
||||
with_dict: gluster_remove
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
# install glusterfs volume driver plugin
|
||||
|
||||
- name: install golang packages
|
||||
apt:
|
||||
state: installed
|
||||
package: "{{ item }}"
|
||||
update_cache: yes
|
||||
cache_valid_time: 3600
|
||||
with_items:
|
||||
- "golang-go"
|
||||
|
||||
|
||||
- name: make golang workspace
|
||||
file:
|
||||
path: /opt/golang
|
||||
state: directory
|
||||
mode: 0775
|
||||
|
||||
- name: fetch go package
|
||||
shell: GOPATH=/opt/golang go get github.com/amarkwalder/docker-volume-glusterfs
|
||||
|
||||
- name: add plugin to startup
|
||||
lineinfile:
|
||||
dest: /etc/rc.local
|
||||
regexp: 'docker-volume-glusterfs -servers'
|
||||
line: '/opt/golang/bin/docker-volume-glusterfs -servers cubox-i:home &'
|
||||
insertbefore: "^exit 0"
|
||||
|
||||
|
||||
#sudo docker-volume-glusterfs -servers gfs-1:gfs-2:gfs-3
|
||||
89
ansible-2.0/roles/dockerhost/tasks/install-xenial-ce.yml
Normal file
89
ansible-2.0/roles/dockerhost/tasks/install-xenial-ce.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
---
|
||||
# main tasks to install docker
|
||||
|
||||
- name: install packages
|
||||
apt:
|
||||
state: installed
|
||||
package: "{{ item }}"
|
||||
update_cache: yes
|
||||
with_items:
|
||||
- "htop"
|
||||
- "wget"
|
||||
- "apt-transport-https"
|
||||
- "ca-certificates"
|
||||
- "software-properties-common"
|
||||
- "curl"
|
||||
- "glusterfs-client"
|
||||
- xfsprogs
|
||||
- attr
|
||||
- virtualbox-guest-additions-iso
|
||||
|
||||
- name: remove deprecated packages
|
||||
apt:
|
||||
state: absent
|
||||
package: "{{ item }}"
|
||||
with_items:
|
||||
- "docker"
|
||||
- "docker-engine"
|
||||
- "docker.io"
|
||||
|
||||
- name: remove obsolete apt repro
|
||||
apt_repository:
|
||||
repo: deb https://download.docker.com/linux/ubuntu ubuntu-xenial Release
|
||||
state: absent
|
||||
|
||||
- name: install repo keys
|
||||
shell: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||
|
||||
- name: install apt repo
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
|
||||
state: present
|
||||
|
||||
- name: install prerequisits
|
||||
shell: apt-get -y install linux-image-extra-$(uname -r) linux-image-extra-virtual
|
||||
|
||||
|
||||
- name: create docker group
|
||||
group: state=present name=docker gid=999 system=yes
|
||||
|
||||
- name: add users to docker group
|
||||
user: name={{ item }} groups=docker append=yes
|
||||
with_items: "{{ dockerhost.users }}"
|
||||
|
||||
|
||||
- name: install via apt
|
||||
apt:
|
||||
state: latest
|
||||
update_cache: true
|
||||
package: "{{ item }}"
|
||||
with_items:
|
||||
- docker-ce
|
||||
# - virtualbox-guest-dkms
|
||||
|
||||
- name: copy docker config file
|
||||
copy:
|
||||
src: daemon.json
|
||||
dest: /etc/docker/daemon.json
|
||||
notify:
|
||||
- restart docker
|
||||
|
||||
## install docker-compose
|
||||
- name: install docker-compose from git repo
|
||||
shell: |
|
||||
curl -L https://github.com/docker/compose/releases/download/{{compose_version}}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
## expose the docker daemon on tcp
|
||||
- name: expose docker daemon
|
||||
file:
|
||||
state: directory
|
||||
path: /etc/systemd/system/docker.service.d
|
||||
|
||||
- name: expose docker daemon
|
||||
copy:
|
||||
src: docker.service.host.conf
|
||||
dest: /etc/systemd/system/docker.service.d/host.conf
|
||||
notify:
|
||||
- restart docker
|
||||
|
||||
99
ansible-2.0/roles/dockerhost/tasks/install-xenial.yml
Normal file
99
ansible-2.0/roles/dockerhost/tasks/install-xenial.yml
Normal file
@@ -0,0 +1,99 @@
|
||||
---
|
||||
# main tasks to install docker
|
||||
|
||||
- name: install packages
|
||||
apt:
|
||||
state: installed
|
||||
package: "{{ item }}"
|
||||
update_cache: yes
|
||||
cache_valid_time: 3600
|
||||
with_items:
|
||||
- "htop"
|
||||
- "wget"
|
||||
- "apt-transport-https"
|
||||
- "ca-certificates"
|
||||
- "glusterfs-client"
|
||||
- xfsprogs
|
||||
- attr
|
||||
- virtualbox-guest-additions-iso
|
||||
|
||||
#- name: install repo keys
|
||||
# apt_key:
|
||||
# keyserver: hkp://ha.pool.sks-keyservers.net:80
|
||||
# id: 58118E89F3A912897C070ADBF76221572C52609D
|
||||
|
||||
- name: install apt repo
|
||||
apt_repository:
|
||||
repo: deb https://apt.dockerproject.org/repo ubuntu-xenial main
|
||||
state: present
|
||||
|
||||
- name: import repo key
|
||||
apt_key:
|
||||
id: 58118E89F3A912897C070ADBF76221572C52609D
|
||||
keyserver: "hkp://ha.pool.sks-keyservers.net:80"
|
||||
state: present
|
||||
|
||||
- name: install prerequisits
|
||||
shell: apt-get -y install linux-image-extra-$(uname -r) linux-image-extra-virtual
|
||||
|
||||
|
||||
- name: create docker group
|
||||
group: state=present name=docker gid=999 system=yes
|
||||
|
||||
- name: add users to docker group
|
||||
user: name={{ item }} groups=docker append=yes
|
||||
with_items: "{{ dockerhost.users }}"
|
||||
|
||||
|
||||
- name: install via apt
|
||||
apt:
|
||||
state: latest
|
||||
update_cache: true
|
||||
package: "{{ item }}"
|
||||
with_items:
|
||||
- docker-engine
|
||||
# - virtualbox-guest-dkms
|
||||
|
||||
- name: copy docker config file
|
||||
copy:
|
||||
src: daemon.json
|
||||
dest: /etc/docker/daemon.json
|
||||
notify:
|
||||
- restart docker
|
||||
|
||||
#- name: create mount points for shares
|
||||
# file:
|
||||
# state: absent
|
||||
# mode: 0774
|
||||
# group: docker
|
||||
# dest: /opt/shared
|
||||
#
|
||||
#- name: create mount points for shares
|
||||
# file:
|
||||
# state: link
|
||||
# mode: 0774
|
||||
# group: docker
|
||||
# src: /media/sf_dkhost
|
||||
# dest: /opt/shared
|
||||
|
||||
|
||||
|
||||
## install docker-compose
|
||||
- name: install docker-compose from git repo
|
||||
shell: |
|
||||
curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
## expose the docker daemon on tcp
|
||||
- name: expose docker daemon
|
||||
file:
|
||||
state: directory
|
||||
path: /etc/systemd/system/docker.service.d
|
||||
|
||||
- name: expose docker daemon
|
||||
copy:
|
||||
src: docker.service.host.conf
|
||||
dest: /etc/systemd/system/docker.service.d/host.conf
|
||||
notify:
|
||||
- restart docker
|
||||
|
||||
27
ansible-2.0/roles/dockerhost/tasks/main.yml
Normal file
27
ansible-2.0/roles/dockerhost/tasks/main.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
# main docker tasks
|
||||
|
||||
- include: "install-xenial-ce.yml"
|
||||
when: ansible_distribution_release == "xenial"
|
||||
become: true
|
||||
|
||||
- include: "fstab.yml"
|
||||
|
||||
- name: symlinks
|
||||
file:
|
||||
state: link
|
||||
src: "{{ item.src }}"
|
||||
path: "{{ item.path }}"
|
||||
force: yes
|
||||
with_items:
|
||||
- { src: "/opt/shared/letsencrypt", path: "/etc/letsencrypt" }
|
||||
|
||||
- name: setup owncloud cron job
|
||||
cron:
|
||||
name: owncloud
|
||||
state: absent
|
||||
user: www-data
|
||||
day: "*/15"
|
||||
job: "curl -k https://xaibox.xai-corp.net/cron.php"
|
||||
|
||||
- include: glusterfs-volume-driver.yml
|
||||
Reference in New Issue
Block a user