This commit is contained in:
aynic.os
2021-07-11 08:56:03 +01:00
parent ce449b3966
commit d6d1299ae2
41 changed files with 342 additions and 211 deletions
+18
View File
@@ -2,10 +2,27 @@
# file: tasks/config.yml
- name: config - add docker storage setup
notify: restart docker
lineinfile: dest="{{docker_init_config_directory}}/{{docker_package}}-storage-setup" state="present" line="STORAGE_DRIVER=\"\""
when: docker_package|length > 0 and ansible_service_mgr == "systemd" and ansible_os_family|lower == "redhat"
become: yes
- name: config - register docker_daemon_config
set_fact:
docker_daemon_config: "{{ lookup('file',docker_daemon_config_file)|default('{}')|from_json}}"
ignore_errors: true
- name: config - add docker daemon storage configuration for btrfs
notify: restart docker
template:
src: daemon.json.j2
dest: "{{docker_daemon_config_file}}"
owner: root
group: docker
mode: "0640"
when: docker_package|length > 0
become: yes
# - name: config - disable docker iptables setup
# lineinfile: dest="/lib/systemd/system/docker.service" state="present" regex="^ExecStart=" line="ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --iptables=false"
# notify: restart docker
@@ -13,6 +30,7 @@
# become: yes
- name: config - setup docker mtu on Openstack VMs
notify: restart docker
lineinfile: dest="{{docker_init_config_directory}}/{{docker_package}}" state="present" backrefs=true regexp='^{{docker_opts}}=(?:\'|\")?((?:\s*[\w=\/\-\.](?<!--mtu=1450)\s*)*)(?:\'|\")?$' line='{{docker_opts}}="\1 --mtu=1450"'
when: docker_package|length > 0 and ansible_product_name == "OpenStack Nova"
become: yes
+1 -1
View File
@@ -9,4 +9,4 @@
- name: group - add me to the docker group
user: name="{{ansible_user_id}}" groups=docker append=yes
become: yes
when: ansible_os_family|lower != "alpine" and ansible_user_id != "root"
when: ansible_os_family|lower != "alpine" and ansible_user_uid != "0"
+6 -3
View File
@@ -7,15 +7,15 @@
- import_tasks: check.yml
tags:
- check
- import_tasks: config.yml
tags:
- config
- import_tasks: files.yml
tags:
- files
- import_tasks: package.yml
tags:
- package
- import_tasks: config.yml
tags:
- config
- import_tasks: service.yml
tags:
- service
@@ -28,3 +28,6 @@
- import_tasks: run.yml
tags:
- run
- import_tasks: myos.yml
tags:
- myos
+61
View File
@@ -0,0 +1,61 @@
---
# file: tasks/myos.yml
- name: myos - register myos
lookup:
file: ~/.env
register: myos
- name: myos - check AWS meta-data URI
uri:
url: http://169.254.169.254/latest/meta-data
timeout: 1
register: aws_uri_check
tags:
- aws
failed_when: False
- import_tasks: myos_ec2.yml
tags:
- aws
- ec2
when: aws_uri_check.status == 200
# ansible v2.8
# - name: myos - prune docker objects
# docker_prune:
# containers: yes
# images: yes
# images_filters:
# dangling: false
# networks: yes
# volumes: yes
# builder_cache: yes
- name: myos - launch docker containers
docker_container:
image: "{{docker_registry|default(myos.tags.user)}}/{{myos.tags.user}}/{{myos.tags.env}}/{% if ':' in item %}{{item}}{% else %}{{item}}:{{docker_image_tag|default('latest')}}{% endif %}"
name: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}"
network_mode: host
pull: yes
restart_policy: always
volumes:
- "{{ lookup('env','ANSIBLE_DISKS_NFS_PATH') }}:/shared"
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
with_items: '{{myos.tags.services.split(" ")}}'
when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined
- name: myos - add docker containers to inventory
add_host:
name: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}"
ansible_connection: docker
changed_when: false
with_items: '{{myos.tags.services.split(" ")}}'
when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined
- name: myos - run make deploy-hook in docker containers
delegate_to: "{{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}}"
raw: "command -v make || exit 0 && make deploy-hook CONTAINER={{myos.tags.user}}_{{myos.tags.env}}_{{item|replace('/','_')|regex_replace(':.*','')}} HOST={{ansible_ec2_local_ipv4}}"
with_items: '{{myos.tags.services.split(" ")}}'
when: myos.tags is defined and myos.tags.env is defined and myos.tags.services is defined and myos.tags.user is defined
+20
View File
@@ -0,0 +1,20 @@
---
# file: tasks/myos_ec2.yml
- name: myos_ec2 - get instance metadata
ec2_metadata_facts:
- name: myos_ec2 - get instance tags
ec2_tag:
aws_access_key: "{{ aws_access_key_id }}"
aws_secret_key: "{{ aws_secret_access_key }}"
region: "{{ ansible_ec2_placement_region }}"
resource: "{{ ansible_ec2_instance_id }}"
state: list
register: myos
when: ansible_ec2_instance_id is defined
- name: myos_ec2 - ecr login
shell: "$(aws ecr get-login --no-include-email --region {{ aws_region }})"
when: myos.tags is defined
+1
View File
@@ -9,6 +9,7 @@
- name: package - add docker GPG key
apt_key: url=https://download.docker.com/linux/debian/gpg
when: ansible_os_family|lower == "debian"
ignore_errors: true
become: yes
- name: package - define arch