diff options
author | Aaron Smith <aasmith@redhat.com> | 2018-10-02 15:09:34 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2018-10-02 15:09:34 +0000 |
commit | 328129a1fd4ae54fe012379439464a56d15d4681 (patch) | |
tree | a89e97ab1027cc025bcf7d82ac4eb424d07cb0fb /docker/ansible/roles | |
parent | dda0e18b1dd1a9a2397f43262124d4de3dc424e7 (diff) | |
parent | 24c5124e304b8e2854d98284f6ee4715a75ee735 (diff) |
Merge "WIP: Add role to auto install docker on hosts"
Diffstat (limited to 'docker/ansible/roles')
-rw-r--r-- | docker/ansible/roles/config_files/tasks/ipmi.yml | 32 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/tasks/main.yml | 6 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/tasks/mcelog.yml | 17 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/tasks/uuid.yml (renamed from docker/ansible/roles/config_files/tasks/types_db.yml) | 11 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 | 1 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/templates/uuid.conf.j2 | 20 | ||||
-rw-r--r-- | docker/ansible/roles/config_files/vars/main.yml | 5 | ||||
-rw-r--r-- | docker/ansible/roles/install_docker/tasks/centos.yml | 45 | ||||
-rw-r--r-- | docker/ansible/roles/install_docker/tasks/main.yml | 31 | ||||
-rw-r--r-- | docker/ansible/roles/install_docker/tasks/proxy.yml | 55 | ||||
-rw-r--r-- | docker/ansible/roles/install_docker/tasks/ubuntu.yml | 47 | ||||
-rw-r--r-- | docker/ansible/roles/install_docker/vars/main.yml | 18 | ||||
-rw-r--r-- | docker/ansible/roles/run_grafana/vars/main.yml | 4 |
13 files changed, 268 insertions, 24 deletions
diff --git a/docker/ansible/roles/config_files/tasks/ipmi.yml b/docker/ansible/roles/config_files/tasks/ipmi.yml index 5ea62c47..c7359fbf 100644 --- a/docker/ansible/roles/config_files/tasks/ipmi.yml +++ b/docker/ansible/roles/config_files/tasks/ipmi.yml @@ -13,14 +13,6 @@ # limitations under the License. --- -- name: Check if /dev/ipmi0 exists - stat: - path: /dev/ipmi0 - register: ipmi0_exists - ignore_errors: True - tags: - - ipmi - - name: check ipmi_devintf is loaded shell: "lsmod | cut -d' ' -f1 | grep ipmi_devintf" register: ipmi_devintf @@ -35,6 +27,30 @@ tags: - ipmi +- name: insert ipmi module ipmi_devintf + command: "modprobe ipmi_devintf" + register: ipmi_devintf + ignore_errors: true + when: ipmi_devintf|failed and insert_ipmi_modules|default(false)|bool + tags: + - ipmi + +- name: insert ipmi module ipmi_si + command: "modprobe ipmi_si" + register: ipmi_devsi + ignore_errors: true + when: ipmi_devsi|failed and insert_ipmi_modules|default(false)|bool + tags: + - ipmi + +- name: Check if /dev/ipmi0 exists + stat: + path: /dev/ipmi0 + register: ipmi0_exists + ignore_errors: true + tags: + - ipmi + - name: enable ipmi plugin template: src: ipmi.conf.j2 diff --git a/docker/ansible/roles/config_files/tasks/main.yml b/docker/ansible/roles/config_files/tasks/main.yml index 9a9cb300..4bf81f81 100644 --- a/docker/ansible/roles/config_files/tasks/main.yml +++ b/docker/ansible/roles/config_files/tasks/main.yml @@ -74,8 +74,8 @@ - name: enable ipmi plugin include: ipmi.yml +- name: enable uuid plugin + include: uuid.yml + - name: copy additional config files include: additional_configs.yml - -- name: copy types.db to target - include: types_db.yml diff --git a/docker/ansible/roles/config_files/tasks/mcelog.yml b/docker/ansible/roles/config_files/tasks/mcelog.yml index 9c935e3e..bab4b142 100644 --- a/docker/ansible/roles/config_files/tasks/mcelog.yml +++ b/docker/ansible/roles/config_files/tasks/mcelog.yml @@ -13,6 +13,23 @@ # limitations under the License. --- +- name: install mcelog package + package: + name: mcelog + state: present + when: install_mcelog|default(false)|bool + tags: + - mcelogs + +- name: start mcelog daemon if not running + service: + name: mcelog + state: started + enabled: true + when: install_mcelog|default(false)|bool + tags: + - mcelogs + - name: check if mcelog running on host shell: ps -ef | grep mcelog | grep -v grep > /dev/null register: mcelog_running diff --git a/docker/ansible/roles/config_files/tasks/types_db.yml b/docker/ansible/roles/config_files/tasks/uuid.yml index 7603bdcf..25cfa128 100644 --- a/docker/ansible/roles/config_files/tasks/types_db.yml +++ b/docker/ansible/roles/config_files/tasks/uuid.yml @@ -13,10 +13,9 @@ # limitations under the License. --- -- name: copy types.db to target system - copy: - src: types.db - dest: "{{ typesdb_dir }}/types.db" - ignore_errors: True +- name: enable uuid plugin + template: + src: uuid.conf.j2 + dest: "{{ config_file_dir }}/uuid.conf" tags: - - typesdb + - uuid diff --git a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 index fd941a76..48beb0be 100644 --- a/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 +++ b/docker/ansible/roles/config_files/templates/default_read_plugins.conf.j2 @@ -30,6 +30,5 @@ Interval "{{ interval_value }}" #LoadPlugin processes #LoadPlugin swap #LoadPlugin turbostat -#LoadPlugin uuid #LoadPlugin uptime diff --git a/docker/ansible/roles/config_files/templates/uuid.conf.j2 b/docker/ansible/roles/config_files/templates/uuid.conf.j2 new file mode 100644 index 00000000..a9a84e71 --- /dev/null +++ b/docker/ansible/roles/config_files/templates/uuid.conf.j2 @@ -0,0 +1,20 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LoadPlugin uuid + +#<Plugin uuid> +# UUIDFile "/etc/uuid" +#</Plugin> + diff --git a/docker/ansible/roles/config_files/vars/main.yml b/docker/ansible/roles/config_files/vars/main.yml index 37120d86..bfa0fd68 100644 --- a/docker/ansible/roles/config_files/vars/main.yml +++ b/docker/ansible/roles/config_files/vars/main.yml @@ -23,7 +23,7 @@ interval_value: 10 #network plugin vars network_port: 25826 -network_ip_addr: localhost +network_ip_addr: "{{ (groups['influxdb_hosts']|default({}))[0] | default('localhost') }}" #ovs event and stats plugin vars ovs_event_interval: 1 @@ -54,6 +54,3 @@ write_per_sec: 50 #additional configuration files path additional_configs_path: "" - -#directory to copy types.db file to -typesdb_dir: "/opt/collectd/share/collectd/" diff --git a/docker/ansible/roles/install_docker/tasks/centos.yml b/docker/ansible/roles/install_docker/tasks/centos.yml new file mode 100644 index 00000000..b84d98f2 --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/centos.yml @@ -0,0 +1,45 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: install dependencies for docker + package: + name: "{{ packages }}" + state: present + vars: + packages: + - python + - yum-utils + - device-mapper-persistent-data + - lvm2 + +- name: set up docker repository + command: "yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo" + +- name: install docker-py + package: + name: python-docker-py + state: present + +- name: install docker + package: + name: docker-ce + state: present + +- name: start docker daemon + systemd: + name: docker + daemon_reload: true + state: started + enabled: true diff --git a/docker/ansible/roles/install_docker/tasks/main.yml b/docker/ansible/roles/install_docker/tasks/main.yml new file mode 100644 index 00000000..7e015bbc --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/main.yml @@ -0,0 +1,31 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: proxy configuration for docker + tags: + - install_docker + import_tasks: proxy.yml + +- name: install docker for ubuntu + tags: + - install_docker + import_tasks: ubuntu.yml + when: ansible_distribution == "Ubuntu" + +- name: install docker for centos + tags: + - install_docker + import_tasks: centos.yml + when: ansible_distribution == "CentOS" diff --git a/docker/ansible/roles/install_docker/tasks/proxy.yml b/docker/ansible/roles/install_docker/tasks/proxy.yml new file mode 100644 index 00000000..397bed4c --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/proxy.yml @@ -0,0 +1,55 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: create docker proxy configuration file + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "[Service]" + create: yes + +- name: add docker http_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"HTTP_PROXY={{ ansible_env.http_proxy }}\"" + when: ansible_env.http_proxy is defined + +- name: add docker https_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"HTTPS_PROXY={{ ansible_env.https_proxy }}\"" + when: ansible_env.https_proxy is defined + +- name: add docker ftp_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"FTP_PROXY={{ ansible_env.ftp_proxy }}\"" + when: ansible_env.ftp_proxy is defined + +- name: add docker no_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"NO_PROXY={{ ansible_env.no_proxy }}\"" + when: ansible_env.no_proxy is defined + diff --git a/docker/ansible/roles/install_docker/tasks/ubuntu.yml b/docker/ansible/roles/install_docker/tasks/ubuntu.yml new file mode 100644 index 00000000..44156873 --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/ubuntu.yml @@ -0,0 +1,47 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: update package manager cache + tags: + - cache_update + package: + update_cache: yes + +- name: install python + package: + name: python + state: present + +- name: install python-pip + package: + name: python-pip + state: present + +- name: install docker-py + pip: + name: docker-py + state: present + +- name: install docker + package: + name: docker.io + state: present + +- name: start docker daemon + systemd: + name: docker + daemon_reload: true + state: started + enabled: true diff --git a/docker/ansible/roles/install_docker/vars/main.yml b/docker/ansible/roles/install_docker/vars/main.yml new file mode 100644 index 00000000..0673a63a --- /dev/null +++ b/docker/ansible/roles/install_docker/vars/main.yml @@ -0,0 +1,18 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +#docker proxy configuration file +docker_proxy_conf: "/etc/systemd/system/docker.service.d/proxy.conf" + diff --git a/docker/ansible/roles/run_grafana/vars/main.yml b/docker/ansible/roles/run_grafana/vars/main.yml index 0975b598..5caf45da 100644 --- a/docker/ansible/roles/run_grafana/vars/main.yml +++ b/docker/ansible/roles/run_grafana/vars/main.yml @@ -13,5 +13,5 @@ # limitations under the License. --- -influxdb_hostname: localhost -influxdb_host_ip: 127.0.0.1 +influxdb_hostname: influxdb_host +influxdb_host_ip: "{{ (groups['influxdb_hosts']|default({}))[0] | default('localhost') }}" |