diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/oso_host_monitoring/README.md | 50 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/defaults/main.yml | 1 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/handlers/main.yml | 12 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/meta/main.yml | 8 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/tasks/main.yml | 65 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/templates/docker-registry.ops.cfg.j2 | 1 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/templates/oso-f22-host-monitoring.service.j2 | 43 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/templates/oso-rhel7-zagg-client.service.j2 | 62 | ||||
| -rw-r--r-- | roles/oso_host_monitoring/vars/main.yml | 1 | 
9 files changed, 243 insertions, 0 deletions
| diff --git a/roles/oso_host_monitoring/README.md b/roles/oso_host_monitoring/README.md new file mode 100644 index 000000000..f1fa05adb --- /dev/null +++ b/roles/oso_host_monitoring/README.md @@ -0,0 +1,50 @@ +Role Name +========= + +Applies local host monitoring container(s). + +Requirements +------------ + +None. + +Role Variables +-------------- + +osohm_zagg_web_url: where to contact monitoring service +osohm_host_monitoring: name of host monitoring container +osohm_zagg_client: name of container with zabbix client +osohm_docker_registry_url: docker repository containing above containers +osohm_default_zagg_server_user: login info to zabbix server +osohm_default_zagg_password: password to zabbix server + +Dependencies +------------ + +None. + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + +    - hosts: servers +      roles: +      - oso_host_monitoring +      vars: +        osohm_zagg_web_url: "https://..." +        osohm_host_monitoring: "oso-rhel7-host-monitoring" +        osohm_zagg_client: "oso-rhel7-zagg-client" +        osohm_docker_registry_url: "docker-registry.example.com/mon/" +        osohm_default_zagg_server_user: "zagg-client" +        osohm_default_zagg_password: "secret" + +License +------- + +ASL 2.0 + +Author Information +------------------ + +OpenShift operations, Red Hat, Inc diff --git a/roles/oso_host_monitoring/defaults/main.yml b/roles/oso_host_monitoring/defaults/main.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/roles/oso_host_monitoring/defaults/main.yml @@ -0,0 +1 @@ +--- diff --git a/roles/oso_host_monitoring/handlers/main.yml b/roles/oso_host_monitoring/handlers/main.yml new file mode 100644 index 000000000..7863ad15b --- /dev/null +++ b/roles/oso_host_monitoring/handlers/main.yml @@ -0,0 +1,12 @@ +--- +- name: "Restart the {{ osohm_host_monitoring }} service" +  service: +    name: "{{ osohm_host_monitoring }}" +    state: restarted +    enabled: yes + +- name: "Restart the {{ osohm_zagg_client }} service" +  service: +    name: "{{ osohm_zagg_client }}" +    state: restarted +    enabled: yes diff --git a/roles/oso_host_monitoring/meta/main.yml b/roles/oso_host_monitoring/meta/main.yml new file mode 100644 index 000000000..cce30c2db --- /dev/null +++ b/roles/oso_host_monitoring/meta/main.yml @@ -0,0 +1,8 @@ +--- +galaxy_info: +  author: OpenShift +  description: apply monitoring container(s). +  company: Red Hat, Inc +  license: ASL 2.0 +  min_ansible_version: 1.2 +dependencies: [] diff --git a/roles/oso_host_monitoring/tasks/main.yml b/roles/oso_host_monitoring/tasks/main.yml new file mode 100644 index 000000000..6ddfa3dcb --- /dev/null +++ b/roles/oso_host_monitoring/tasks/main.yml @@ -0,0 +1,65 @@ +--- +- fail: +    msg: "This playbook requires {{item}} to be set." +  when: "{{ item }} is not defined or {{ item }} == ''" +  with_items: +  - osohm_zagg_web_url +  - osohm_host_monitoring +  - osohm_zagg_client +  - osohm_docker_registry_url +  - osohm_default_zagg_server_user +  - osohm_default_zagg_server_password + +- name: create /etc/docker/ops +  file: +    path: /etc/docker/ops +    state: directory +    mode: 0770 +    group: root +    owner: root + +- name: Copy dockercfg to /etc/docker/ops +  template: +      src: docker-registry.ops.cfg.j2 +      dest: /etc/docker/ops/.dockercfg +      owner: root +      group: root +      mode: 0600 + +- name: "Copy {{ osohm_host_monitoring }} systemd file" +  template: +    src: "{{ osohm_host_monitoring }}.service.j2" +    dest: "/etc/systemd/system/{{ osohm_host_monitoring }}.service" +    owner: root +    group: root +    mode: 0644 +  notify: +  - "Restart the {{ osohm_host_monitoring }} service" +  register: systemd_host_monitoring + +- name: "Copy {{ osohm_zagg_client }} systemd file" +  template: +    src: "{{ osohm_zagg_client }}.service.j2" +    dest: "/etc/systemd/system/{{ osohm_zagg_client }}.service" +    owner: root +    group: root +    mode: 0644 +  notify: +  - "Restart the {{ osohm_zagg_client }} service" +  register: zagg_systemd + +- name: reload systemd +  command: /usr/bin/systemctl --system daemon-reload +  when: systemd_host_monitoring | changed or zagg_systemd | changed + +- name: "Start the {{ osohm_host_monitoring }} service" +  service: +    name: "{{ osohm_host_monitoring }}" +    state: started +    enabled: yes + +- name: "Start the {{ osohm_zagg_client }} service" +  service: +    name: "{{ osohm_zagg_client }}" +    state: started +    enabled: yes diff --git a/roles/oso_host_monitoring/templates/docker-registry.ops.cfg.j2 b/roles/oso_host_monitoring/templates/docker-registry.ops.cfg.j2 new file mode 100644 index 000000000..9e49da469 --- /dev/null +++ b/roles/oso_host_monitoring/templates/docker-registry.ops.cfg.j2 @@ -0,0 +1 @@ +{"{{ osohm_docker_registry_ops_url }}":{"auth":"{{ osohm_docker_registry_ops_key }}","email":"{{ osohm_docker_registry_ops_email }}"}} diff --git a/roles/oso_host_monitoring/templates/oso-f22-host-monitoring.service.j2 b/roles/oso_host_monitoring/templates/oso-f22-host-monitoring.service.j2 new file mode 100644 index 000000000..d18ad90fe --- /dev/null +++ b/roles/oso_host_monitoring/templates/oso-f22-host-monitoring.service.j2 @@ -0,0 +1,43 @@ +# This is a systemd file to run this docker container under systemd. +# To make this work: +#  * pull the image (probably from ops docker registry) +#  * place this file in /etc/systemd/system without the .systemd extension +#  * run the commands: +#  systemctl daemon-reload +#  systemctl enable pcp-docker +#  systemctl start pcp-docker +# +# +[Unit] +Description=PCP Collector Contatainer +Requires=docker.service +After=docker.service + + +[Service] +Type=simple +TimeoutStartSec=5m +Environment=HOME=/etc/docker/ops +#Slice=container-small.slice + +# systemd syntax '=-' ignore errors from return codes. +ExecStartPre=-/usr/bin/docker kill "{{ osohm_host_monitoring }}" +ExecStartPre=-/usr/bin/docker rm "{{ osohm_host_monitoring }}" +ExecStartPre=-/usr/bin/docker pull "{{ osohm_docker_registry_url }}{{ osohm_host_monitoring }}" + + +ExecStart=/usr/bin/docker run --rm  --name="{{ osohm_host_monitoring }}"      \ +          --privileged --net=host --pid=host --ipc=host                       \ +          -v /sys:/sys:ro  -v /etc/localtime:/etc/localtime:ro                \ +          -v /var/lib/docker:/var/lib/docker:ro -v /run:/run                  \ +          -v /var/log:/var/log                                                \ +          {{ osohm_docker_registry_url }}{{ osohm_host_monitoring }} + +ExecReload=-/usr/bin/docker stop "{{ osohm_host_monitoring }}" +ExecReload=-/usr/bin/docker rm "{{ osohm_host_monitoring }}" +ExecStop=-/usr/bin/docker stop "{{ osohm_host_monitoring }}" +Restart=always +RestartSec=30 + +[Install] +WantedBy=default.target diff --git a/roles/oso_host_monitoring/templates/oso-rhel7-zagg-client.service.j2 b/roles/oso_host_monitoring/templates/oso-rhel7-zagg-client.service.j2 new file mode 100644 index 000000000..978e40b88 --- /dev/null +++ b/roles/oso_host_monitoring/templates/oso-rhel7-zagg-client.service.j2 @@ -0,0 +1,62 @@ +# This is a systemd file to run this docker container under systemd. +# To make this work: +#  * pull the image (probably from ops docker registry) +#  * place this file in /etc/systemd/system without the .systemd extension +#  * run the commands: +#  systemctl daemon-reload +#  systemctl enable zagg-client-docker +#  systemctl start zagg-client-docker +# +# +[Unit] +Description=Zagg Client Contatainer +Requires=docker.service +After=docker.service + + +[Service] +Type=simple +TimeoutStartSec=5m +Environment=HOME=/etc/docker/ops +#Slice=container-small.slice + +# systemd syntax '=-' ignore errors from return codes. +ExecStartPre=-/usr/bin/docker kill "{{ osohm_zagg_client }}" +ExecStartPre=-/usr/bin/docker rm "{{ osohm_zagg_client }}" +ExecStartPre=-/usr/bin/docker pull "{{ osohm_docker_registry_url }}{{ osohm_zagg_client }}" + + +ExecStart=/usr/bin/docker run --name {{ osohm_zagg_client }}                                   \ +           --privileged                                                                      \ +           --pid=host                                                                        \ +           --net=host                                                                        \ +           -e ZAGG_URL={{ osohm_zagg_web_url }}                                                    \ +           -e ZAGG_USER={{ osohm_default_zagg_server_user }}                                     \ +           -e ZAGG_PASSWORD={{ osohm_default_zagg_server_password }}                             \ +           -e ZAGG_CLIENT_HOSTNAME={{ ec2_tag_Name }}                                        \ +           -e ZAGG_SSL_VERIFY={{ osohm_zagg_verify_ssl }}                                          \ +           -e OSO_CLUSTER_GROUP={{ cluster_group }}                                          \ +           -e OSO_CLUSTER_ID={{ oo_clusterid }}                                       \ +           -e OSO_HOST_TYPE={{ hostvars[inventory_hostname]['ec2_tag_host-type'] }}          \ +           -e OSO_SUB_HOST_TYPE={{ hostvars[inventory_hostname]['ec2_tag_sub-host-type'] }}  \ +           -v /etc/localtime:/etc/localtime                                                  \ +           -v /run/pcp:/run/pcp                                                              \ +           -v /var/run/docker.sock:/var/run/docker.sock                                      \ +           -v /var/run/openvswitch/db.sock:/var/run/openvswitch/db.sock                      \ +{% if hostvars[inventory_hostname]['ec2_tag_host-type'] == 'master' %} +           -v /etc/openshift/master/admin.kubeconfig:/etc/openshift/master/admin.kubeconfig  \ +           -v /etc/openshift/master/master.etcd-client.crt:/etc/openshift/master/master.etcd-client.crt \ +           -v /etc/openshift/master/master.etcd-client.key:/etc/openshift/master/master.etcd-client.key \ +           -v /etc/openshift/master/master-config.yaml:/etc/openshift/master/master-config.yaml \ +{% endif %} +           {{ osohm_docker_registry_url }}{{ osohm_zagg_client }} + + +ExecReload=-/usr/bin/docker stop "{{ osohm_zagg_client }}" +ExecReload=-/usr/bin/docker rm "{{ osohm_zagg_client }}" +ExecStop=-/usr/bin/docker stop "{{ osohm_zagg_client }}" +Restart=always +RestartSec=30 + +[Install] +WantedBy=default.target diff --git a/roles/oso_host_monitoring/vars/main.yml b/roles/oso_host_monitoring/vars/main.yml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/roles/oso_host_monitoring/vars/main.yml @@ -0,0 +1 @@ +--- | 
