diff options
Diffstat (limited to 'playbooks')
| -rw-r--r-- | playbooks/byo/openshift-cluster/enable_dnsmasq.yml | 18 | ||||
| -rw-r--r-- | playbooks/common/openshift-cluster/enable_dnsmasq.yml | 66 | ||||
| l--------- | playbooks/common/openshift-cluster/library | 1 | ||||
| l--------- | playbooks/common/openshift-master/library | 1 | ||||
| -rwxr-xr-x | playbooks/common/openshift-master/library/modify_yaml.py | 95 | 
5 files changed, 86 insertions, 95 deletions
| diff --git a/playbooks/byo/openshift-cluster/enable_dnsmasq.yml b/playbooks/byo/openshift-cluster/enable_dnsmasq.yml new file mode 100644 index 000000000..1c8d99341 --- /dev/null +++ b/playbooks/byo/openshift-cluster/enable_dnsmasq.yml @@ -0,0 +1,18 @@ +--- +- hosts: localhost +  connection: local +  become: no +  gather_facts: no +  tasks: +  - include_vars: ../../byo/openshift-cluster/cluster_hosts.yml +  - add_host: +      name: "{{ item }}" +      groups: l_oo_all_hosts +    with_items: g_all_hosts + +- hosts: l_oo_all_hosts +  gather_facts: no +  tasks: +  - include_vars: ../../byo/openshift-cluster/cluster_hosts.yml +   +- include: ../../common/openshift-cluster/enable_dnsmasq.yml diff --git a/playbooks/common/openshift-cluster/enable_dnsmasq.yml b/playbooks/common/openshift-cluster/enable_dnsmasq.yml new file mode 100644 index 000000000..f2bcc872f --- /dev/null +++ b/playbooks/common/openshift-cluster/enable_dnsmasq.yml @@ -0,0 +1,66 @@ +--- +- include: evaluate_groups.yml + +- name: Load openshift_facts +  hosts: oo_masters_to_config:oo_nodes_to_config +  roles: +  - openshift_facts +  post_tasks: +  - fail: msg="This playbook requires a master version of at least Origin 1.1 or OSE 3.1" +    when: not openshift.common.version_gte_3_1_1_or_1_1_1 | bool +   +- name: Reconfigure masters to listen on our new dns_port +  hosts: oo_masters_to_config +  handlers: +  - include: ../../../roles/openshift_master/handlers/main.yml +  vars: +    os_firewall_allow: +    - service: skydns tcp +      port: "{{ openshift.master.dns_port }}/tcp" +    - service: skydns udp +      port: "{{ openshift.master.dns_port }}/udp" +  roles: +  - os_firewall +  tasks: +  - openshift_facts: +      role: "{{ item.role }}" +      local_facts: "{{ item.local_facts }}" +    with_items: +    - role: common +      local_facts: +        use_dnsmasq: True +    - role: master +      local_facts: +        dns_port: '8053' +  - modify_yaml: +      dest: "{{ openshift.common.config_base }}/master/master-config.yaml" +      yaml_key: dnsConfig.bindAddress +      yaml_value: "{{ openshift.master.bind_addr }}:{{ openshift.master.dns_port }}" +    notify: restart master +  - meta: flush_handlers + +- name: Configure nodes for dnsmasq +  hosts: oo_nodes_to_config +  handlers: +  - include: ../../../roles/openshift_node/handlers/main.yml +  pre_tasks: +  - openshift_facts: +      role: "{{ item.role }}" +      local_facts: "{{ item.local_facts }}" +    with_items: +    - role: common +      local_facts: +        use_dnsmasq: True +    - role: node +      local_facts: +        dns_ip: "{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}" +  vars: +    openshift_deployment_type: "{{ deployment_type }}" +  roles: +    - openshift_node_dnsmasq +  post_tasks: +  - modify_yaml: +      dest: "{{ openshift.common.config_base }}/node/node-config.yaml" +      yaml_key: dnsIP +      yaml_value: "{{ openshift.node.dns_ip }}" +    notify: restart node diff --git a/playbooks/common/openshift-cluster/library b/playbooks/common/openshift-cluster/library new file mode 120000 index 000000000..d0b7393d3 --- /dev/null +++ b/playbooks/common/openshift-cluster/library @@ -0,0 +1 @@ +../../../library/
\ No newline at end of file diff --git a/playbooks/common/openshift-master/library b/playbooks/common/openshift-master/library new file mode 120000 index 000000000..d0b7393d3 --- /dev/null +++ b/playbooks/common/openshift-master/library @@ -0,0 +1 @@ +../../../library/
\ No newline at end of file diff --git a/playbooks/common/openshift-master/library/modify_yaml.py b/playbooks/common/openshift-master/library/modify_yaml.py deleted file mode 100755 index a4be10ca3..000000000 --- a/playbooks/common/openshift-master/library/modify_yaml.py +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# vim: expandtab:tabstop=4:shiftwidth=4 - -''' modify_yaml ansible module ''' - -import yaml - -DOCUMENTATION = ''' ---- -module: modify_yaml -short_description: Modify yaml key value pairs -author: Andrew Butcher -requirements: [ ] -''' -EXAMPLES = ''' -- modify_yaml: -    dest: /etc/origin/master/master-config.yaml -    yaml_key: 'kubernetesMasterConfig.masterCount' -    yaml_value: 2 -''' - -def main(): -    ''' Modify key (supplied in jinja2 dot notation) in yaml file, setting -        the key to the desired value. -    ''' - -    # disabling pylint errors for global-variable-undefined and invalid-name -    # for 'global module' usage, since it is required to use ansible_facts -    # pylint: disable=global-variable-undefined, invalid-name, -    # redefined-outer-name -    global module - -    module = AnsibleModule( -        argument_spec=dict( -            dest=dict(required=True), -            yaml_key=dict(required=True), -            yaml_value=dict(required=True), -            backup=dict(required=False, default=True, type='bool'), -        ), -        supports_check_mode=True, -    ) - -    dest = module.params['dest'] -    yaml_key = module.params['yaml_key'] -    yaml_value = module.safe_eval(module.params['yaml_value']) -    backup = module.params['backup'] - -    # Represent null values as an empty string. -    # pylint: disable=missing-docstring, unused-argument -    def none_representer(dumper, data): -        return yaml.ScalarNode(tag=u'tag:yaml.org,2002:null', value=u'') -    yaml.add_representer(type(None), none_representer) - -    try: -        changes = [] - -        yaml_file = open(dest) -        yaml_data = yaml.safe_load(yaml_file.read()) -        yaml_file.close() - -        ptr = yaml_data -        for key in yaml_key.split('.'): -            if key not in ptr and key != yaml_key.split('.')[-1]: -                ptr[key] = {} -            elif key == yaml_key.split('.')[-1]: -                if (key in ptr and module.safe_eval(ptr[key]) != yaml_value) or (key not in ptr): -                    ptr[key] = yaml_value -                    changes.append((yaml_key, yaml_value)) -            else: -                ptr = ptr[key] - -        if len(changes) > 0: -            if backup: -                module.backup_local(dest) -            yaml_file = open(dest, 'w') -            yaml_string = yaml.dump(yaml_data, default_flow_style=False) -            yaml_string = yaml_string.replace('\'\'', '""') -            yaml_file.write(yaml_string) -            yaml_file.close() - -        return module.exit_json(changed=(len(changes) > 0), changes=changes) - -    # ignore broad-except error to avoid stack trace to ansible user -    # pylint: disable=broad-except -    except Exception, e: -        return module.fail_json(msg=str(e)) - -# ignore pylint errors related to the module_utils import -# pylint: disable=redefined-builtin, unused-wildcard-import, wildcard-import -# import module snippets -from ansible.module_utils.basic import * - -if __name__ == '__main__': -    main() | 
