diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/chrony/README.md | 31 | ||||
| -rw-r--r-- | roles/chrony/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/chrony/handlers/main.yml | 5 | ||||
| -rw-r--r-- | roles/chrony/meta/main.yml | 18 | ||||
| -rw-r--r-- | roles/chrony/tasks/main.yml | 30 | ||||
| -rw-r--r-- | roles/chrony/templates/chrony.conf.j2 | 45 | ||||
| -rw-r--r-- | roles/chrony/vars/main.yml | 2 | ||||
| -rw-r--r-- | roles/lib_timedatectl/library/timedatectl.py | 74 | ||||
| -rw-r--r-- | roles/lib_zabbix/tasks/create_template.yml | 1 | ||||
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 9 | ||||
| -rw-r--r-- | roles/os_zabbix/vars/template_docker.yml | 2 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/README.md | 54 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/handlers/main.yml | 2 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/meta/main.yml | 8 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/tasks/main.yml | 18 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/vars/main.yml | 12 | 
17 files changed, 307 insertions, 8 deletions
diff --git a/roles/chrony/README.md b/roles/chrony/README.md new file mode 100644 index 000000000..bf15d9669 --- /dev/null +++ b/roles/chrony/README.md @@ -0,0 +1,31 @@ +Role Name +========= + +A role to configure chrony as the ntp client + +Requirements +------------ + + +Role Variables +-------------- + +chrony_ntp_servers: a list of ntp servers to use the chrony.conf file + +Dependencies +------------ + +roles/lib_timedatectl + +Example Playbook +---------------- + +License +------- + +Apache 2.0 + +Author Information +------------------ + +Openshift Operations diff --git a/roles/chrony/defaults/main.yml b/roles/chrony/defaults/main.yml new file mode 100644 index 000000000..95576e666 --- /dev/null +++ b/roles/chrony/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for chrony diff --git a/roles/chrony/handlers/main.yml b/roles/chrony/handlers/main.yml new file mode 100644 index 000000000..1973c79e2 --- /dev/null +++ b/roles/chrony/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: Restart chronyd +  service: +    name: chronyd +    state: restarted diff --git a/roles/chrony/meta/main.yml b/roles/chrony/meta/main.yml new file mode 100644 index 000000000..85595d7c3 --- /dev/null +++ b/roles/chrony/meta/main.yml @@ -0,0 +1,18 @@ +--- +galaxy_info: +  author: Openshift Operations +  description: Configure chrony as an ntp server +  company: Red Hat +  license: Apache 2.0 +  min_ansible_version: 1.9.2 +  platforms: +  - name: EL +    versions: +    - 7 +  - name: Fedora +    versions: +    - all +  categories: +  - system +dependencies: +- roles/lib_timedatectl diff --git a/roles/chrony/tasks/main.yml b/roles/chrony/tasks/main.yml new file mode 100644 index 000000000..fae6d8e4c --- /dev/null +++ b/roles/chrony/tasks/main.yml @@ -0,0 +1,30 @@ +--- +- name: remove ntp package +  yum: +    name: ntp +    state: absent + +- name: ensure chrony package is installed +  yum: +    name: chrony +    state: installed + +- name: Install /etc/chrony.conf +  template: +    src: chrony.conf.j2 +    dest: /etc/chrony.conf +    owner: root +    group: root +    mode: 0644 +  notify: +    - Restart chronyd + +- name: enabled timedatectl set-ntp yes +  timedatectl: +    ntp: True + +- name: +  service: +    name: chronyd +    state: started +    enabled: yes diff --git a/roles/chrony/templates/chrony.conf.j2 b/roles/chrony/templates/chrony.conf.j2 new file mode 100644 index 000000000..de43b6364 --- /dev/null +++ b/roles/chrony/templates/chrony.conf.j2 @@ -0,0 +1,45 @@ +# Use public servers from the pool.ntp.org project. +# Please consider joining the pool (http://www.pool.ntp.org/join.html). +{% for server in chrony_ntp_servers %} +server {{ server }} iburst +{% endfor %} + +# Ignore stratum in source selection. +stratumweight 0 + +# Record the rate at which the system clock gains/losses time. +driftfile /var/lib/chrony/drift + +# Enable kernel RTC synchronization. +rtcsync + +# In first three updates step the system clock instead of slew +# if the adjustment is larger than 10 seconds. +makestep 10 3 + +# Allow NTP client access from local network. +#allow 192.168/16 + +# Listen for commands only on localhost. +bindcmdaddress 127.0.0.1 +bindcmdaddress ::1 + +# Serve time even if not synchronized to any NTP server. +#local stratum 10 + +keyfile /etc/chrony.keys + +# Specify the key used as password for chronyc. +commandkey 1 + +# Generate command key if missing. +generatecommandkey + +# Disable logging of client accesses. +noclientlog + +# Send a message to syslog if a clock adjustment is larger than 0.5 seconds. +logchange 0.5 + +logdir /var/log/chrony +#log measurements statistics tracking diff --git a/roles/chrony/vars/main.yml b/roles/chrony/vars/main.yml new file mode 100644 index 000000000..061a21547 --- /dev/null +++ b/roles/chrony/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for chrony diff --git a/roles/lib_timedatectl/library/timedatectl.py b/roles/lib_timedatectl/library/timedatectl.py new file mode 100644 index 000000000..b6eab5918 --- /dev/null +++ b/roles/lib_timedatectl/library/timedatectl.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python +''' +    timedatectl ansible module + +    This module supports setting ntp enabled +''' +import subprocess + + + + +def do_timedatectl(options=None): +    ''' subprocess timedatectl ''' + +    cmd = ['/usr/bin/timedatectl'] +    if options: +        cmd += options.split() + +    proc = subprocess.Popen(cmd, stdin=None, stdout=subprocess.PIPE) +    proc.wait() +    return proc.stdout.read() + +def main(): +    ''' Ansible module for timedatectl +    ''' + +    module = AnsibleModule( +        argument_spec=dict( +            #state=dict(default='enabled', type='str'), +            ntp=dict(default=True, type='bool'), +        ), +        #supports_check_mode=True +    ) + +    # do something +    ntp_enabled = False + +    results = do_timedatectl() + +    for line in results.split('\n'): +        if 'NTP enabled' in line: +            if 'yes' in line: +                ntp_enabled = True + +    ######## +    # Enable NTP +    ######## +    if module.params['ntp']: +        if ntp_enabled: +            module.exit_json(changed=False, results="enabled", state="enabled") + +        # Enable it +        # Commands to enable ntp +        else: +            results = do_timedatectl('set-ntp yes') +            module.exit_json(changed=True, results="enabled", state="enabled", cmdout=results) + +    ######### +    # Disable NTP +    ######### +    else: +        if not ntp_enabled: +            module.exit_json(changed=False, results="disabled", state="disabled") + +        results = do_timedatectl('set-ntp no') +        module.exit_json(changed=True, results="disabled", state="disabled") + +    module.exit_json(failed=True, changed=False, results="Something went wrong", state="unknown") + +# Pylint is getting in the way of basic Ansible +# pylint: disable=redefined-builtin,wildcard-import,unused-wildcard-import +from ansible.module_utils.basic import * + +main() diff --git a/roles/lib_zabbix/tasks/create_template.yml b/roles/lib_zabbix/tasks/create_template.yml index 47749389e..61344357a 100644 --- a/roles/lib_zabbix/tasks/create_template.yml +++ b/roles/lib_zabbix/tasks/create_template.yml @@ -57,6 +57,7 @@      expression: "{{ item.expression }}"      priority: "{{ item.priority }}"      url: "{{ item.url | default(None, True) }}" +    status: "{{ item.status | default('', True) }}"    with_items: template.ztriggers    when: template.ztriggers is defined diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 2a3d4acbd..831d78b83 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -188,9 +188,6 @@ def normalize_gce_facts(metadata, facts):      _, _, zone = metadata['instance']['zone'].rpartition('/')      facts['zone'] = zone -    # Default to no sdn for GCE deployments -    facts['use_openshift_sdn'] = False -      # GCE currently only supports a single interface      facts['network']['ip'] = facts['network']['interfaces'][0]['ips'][0]      pub_ip = facts['network']['interfaces'][0]['public_ips'][0] @@ -884,10 +881,6 @@ def apply_provider_facts(facts, provider_facts):      if not provider_facts:          return facts -    use_openshift_sdn = provider_facts.get('use_openshift_sdn') -    if isinstance(use_openshift_sdn, bool): -        facts['common']['use_openshift_sdn'] = use_openshift_sdn -      common_vars = [('hostname', 'ip'), ('public_hostname', 'public_ip')]      for h_var, ip_var in common_vars:          ip_value = provider_facts['network'].get(ip_var) @@ -1078,7 +1071,7 @@ class OpenShiftFacts(object):          Raises:              OpenShiftFactsUnsupportedRoleError:      """ -    known_roles = ['common', 'master', 'node', 'master_sdn', 'node_sdn', 'etcd', 'nfs'] +    known_roles = ['common', 'master', 'node', 'etcd', 'nfs']      def __init__(self, role, filename, local_facts, additive_facts_to_overwrite=False):          self.changed = False diff --git a/roles/os_zabbix/vars/template_docker.yml b/roles/os_zabbix/vars/template_docker.yml index a05e552e3..dd13e76f7 100644 --- a/roles/os_zabbix/vars/template_docker.yml +++ b/roles/os_zabbix/vars/template_docker.yml @@ -72,10 +72,12 @@ g_template_docker:      url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/check_docker_ping.asciidoc'      priority: high +  # Re-enable for OpenShift 3.1.1 (https://bugzilla.redhat.com/show_bug.cgi?id=1292971#c6)    - name: 'docker.container.dns.resolution failed on {HOST.NAME}'      expression: '{Template Docker:docker.container.dns.resolution.min(#3)}>0'      url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/check_docker_dns.asciidoc'      priority: average +    status: disabled    - name: 'docker.container.existing.dns.resolution.failed on {HOST.NAME}'      expression: '{Template Docker:docker.container.existing.dns.resolution.failed.min(#3)}>0' diff --git a/roles/oso_monitoring_tools/README.md b/roles/oso_monitoring_tools/README.md new file mode 100644 index 000000000..4215f9eeb --- /dev/null +++ b/roles/oso_monitoring_tools/README.md @@ -0,0 +1,54 @@ +Role Name +========= + +This role will install the Openshift Monitoring Utilities + +Requirements +------------ + +Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required. + +Role Variables +-------------- + +osomt_zagg_client_config + +from vars/main.yml: + +osomt_zagg_client_config: +  host: +    name: "{{ osomt_host_name }}" +  zagg: +    url: "{{ osomt_zagg_url }}" +    user: "{{ osomt_zagg_user }}" +    pass: "{{ osomt_zagg_password }}" +    ssl_verify: "{{ osomt_zagg_ssl_verify }}" +    verbose: "{{ osomt_zagg_verbose }}" +    debug: "{{ osomt_zagg_debug }}" + +Dependencies +------------ + +None + +Example Playbook +---------------- + +- role: "oso_monitoring_tools" +  osomt_host_name: hostname +  osomt_zagg_url: http://path.to/zagg_web +  osomt_zagg_user: admin +  osomt_zagg_password: password +  osomt_zagg_ssl_verify: True +  osomt_zagg_verbose: False +  osomt_zagg_debug: False + +License +------- + +BSD + +Author Information +------------------ + +Openshift Operations diff --git a/roles/oso_monitoring_tools/defaults/main.yml b/roles/oso_monitoring_tools/defaults/main.yml new file mode 100644 index 000000000..a17424f25 --- /dev/null +++ b/roles/oso_monitoring_tools/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for oso_monitoring_tools diff --git a/roles/oso_monitoring_tools/handlers/main.yml b/roles/oso_monitoring_tools/handlers/main.yml new file mode 100644 index 000000000..cefa780ab --- /dev/null +++ b/roles/oso_monitoring_tools/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for oso_monitoring_tools diff --git a/roles/oso_monitoring_tools/meta/main.yml b/roles/oso_monitoring_tools/meta/main.yml new file mode 100644 index 000000000..9c42b68dc --- /dev/null +++ b/roles/oso_monitoring_tools/meta/main.yml @@ -0,0 +1,8 @@ +--- +galaxy_info: +  author: OpenShift Operations +  description: Install Openshift Monitoring tools +  company: Red Hat, Inc +  license: ASL 2.0 +  min_ansible_version: 1.2 +dependencies: [] diff --git a/roles/oso_monitoring_tools/tasks/main.yml b/roles/oso_monitoring_tools/tasks/main.yml new file mode 100644 index 000000000..c90fc56e2 --- /dev/null +++ b/roles/oso_monitoring_tools/tasks/main.yml @@ -0,0 +1,18 @@ +--- +# tasks file for oso_monitoring_tools +- name: Install the Openshift Tools RPMS +  yum: +    name: "{{ item }}" +    state: latest +  with_items: +    - openshift-tools-scripts-monitoring-zagg-client +    - python-openshift-tools-monitoring-zagg +    - python-openshift-tools-monitoring-zabbix + +- debug: var=g_zagg_client_config + +- name: Generate the /etc/openshift_tools/zagg_client.yaml config file +  copy: +    content: "{{ osomt_zagg_client_config | to_nice_yaml }}" +    dest: /etc/openshift_tools/zagg_client.yaml +    mode: "644" diff --git a/roles/oso_monitoring_tools/vars/main.yml b/roles/oso_monitoring_tools/vars/main.yml new file mode 100644 index 000000000..3538ba30b --- /dev/null +++ b/roles/oso_monitoring_tools/vars/main.yml @@ -0,0 +1,12 @@ +--- +# vars file for oso_monitoring_tools +osomt_zagg_client_config: +  host: +    name: "{{ osomt_host_name }}" +  zagg: +    url: "{{ osomt_zagg_url }}" +    user: "{{ osomt_zagg_user }}" +    pass: "{{ osomt_zagg_password }}" +    ssl_verify: "{{ osomt_zagg_ssl_verify }}" +    verbose: "{{ osomt_zagg_verbose }}" +    debug: "{{ osomt_zagg_debug }}"  | 
