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/haproxy/handlers/main.yml | 1 | ||||
| -rw-r--r-- | roles/haproxy/tasks/main.yml | 5 | ||||
| -rw-r--r-- | roles/lib_timedatectl/library/timedatectl.py | 74 | ||||
| -rw-r--r-- | roles/openshift_node/tasks/storage_plugins/nfs.yml | 4 | ||||
| -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 | 17 | ||||
| -rw-r--r-- | roles/oso_monitoring_tools/vars/main.yml | 12 | 
17 files changed, 309 insertions, 3 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/haproxy/handlers/main.yml b/roles/haproxy/handlers/main.yml index ee60adcab..5b8691b26 100644 --- a/roles/haproxy/handlers/main.yml +++ b/roles/haproxy/handlers/main.yml @@ -3,3 +3,4 @@    service:      name: haproxy      state: restarted +  when: not (haproxy_start_result_changed | default(false) | bool) diff --git a/roles/haproxy/tasks/main.yml b/roles/haproxy/tasks/main.yml index 97f870829..0b8370ce2 100644 --- a/roles/haproxy/tasks/main.yml +++ b/roles/haproxy/tasks/main.yml @@ -19,6 +19,5 @@      enabled: yes    register: start_result -- name: Pause 30 seconds if haproxy was just started -  pause: seconds=30 -  when: start_result | changed +- set_fact: +    haproxy_start_result_changed: "{{ start_result | changed }}" 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/openshift_node/tasks/storage_plugins/nfs.yml b/roles/openshift_node/tasks/storage_plugins/nfs.yml index 1edf21d9b..14a613786 100644 --- a/roles/openshift_node/tasks/storage_plugins/nfs.yml +++ b/roles/openshift_node/tasks/storage_plugins/nfs.yml @@ -1,4 +1,8 @@  --- +- name: Install NFS storage plugin dependencies +  action: "{{ ansible_pkg_mgr }} name=nfs-utils state=present" +  when: not openshift.common.is_atomic | bool +  - name: Set seboolean to allow nfs storage plugin access from containers    seboolean:      name: virt_use_nfs 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..b165f9a45 --- /dev/null +++ b/roles/oso_monitoring_tools/tasks/main.yml @@ -0,0 +1,17 @@ +--- +# 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 + +- 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 }}" | 
