ansible-role-nodepool

Ansible role to manage Nodepool

Description

Nodepool is a system for launching single-use test nodes on demand based on images built with cached data. It is designed to work with any OpenStack based cloud, and is part of a suite of tools that form a comprehensive test system including Jenkins and Zuul.

Requirements

  • pip3 to be installed if using nodepool_install_method: (git|pip)

Packages

Package repository index files should be up to date before using this role, we do not manage them.

Sudo

You will be required to create the appropriate sudoers file if you plan on creating DIBs.

Role Variables

---
# tasks/main.yaml
nodepool_task_manager:
  - pre
  - install
  - config
  - service

# tasks/config.yaml
nodepool_user_name: nodepool
nodepool_user_group: nodepool
nodepool_user_home: /var/lib/nodepool
# nodepool_user_shell:

nodepool_file_nodepool_yaml_dest: /etc/nodepool/nodepool.yaml
nodepool_file_nodepool_yaml_group: "{{ nodepool_user_group }}"
nodepool_file_nodepool_yaml_mode: 0644
nodepool_file_nodepool_yaml_owner: "{{ nodepool_user_name }}"
nodepool_file_nodepool_yaml_src: etc/nodepool/nodepool.yaml

nodepool_file_secure_conf_dest: /etc/nodepool/secure.conf
nodepool_file_secure_conf_group: "{{ nodepool_user_group }}"
nodepool_file_secure_conf_mode: 0600
nodepool_file_secure_conf_owner: "{{ nodepool_user_name }}"
nodepool_file_secure_conf_src: etc/nodepool/secure.conf

nodepool_file_builder_logging_conf_dest: /etc/nodepool/builder-logging.conf
nodepool_file_builder_logging_conf_group: "{{ nodepool_user_group }}"
nodepool_file_builder_logging_conf_mode: 0644
nodepool_file_builder_logging_conf_owner: "{{ nodepool_user_name }}"
nodepool_file_builder_logging_conf_src: etc/nodepool/builder-logging.conf

nodepool_file_launcher_logging_conf_dest: /etc/nodepool/launcher-logging.conf
nodepool_file_launcher_logging_conf_group: "{{ nodepool_user_group }}"
nodepool_file_launcher_logging_conf_mode: 0644
nodepool_file_launcher_logging_conf_owner: "{{ nodepool_user_name }}"
nodepool_file_launcher_logging_conf_src: etc/nodepool/launcher-logging.conf

# tasks/install.yaml
nodepool_git_dest: "{{ ansible_user_dir }}/src/git.openstack.org/openstack-infra/nodepool"
nodepool_git_uri: https://git.openstack.org/openstack-infra/nodepool
nodepool_git_version: master
# nodepool_git_refspec:
# nodepool_git_update:

nodepool_install_method: pip

nodepool_pip_name: nodepool
# nodepool_pip_executable:
# nodepool_pip_editable:
# nodepool_pip_extra_args:
# nodepool_pip_version:
# nodepool_pip_virtualenv_python:
# nodepool_pip_virtualenv:

# tasks/service.yaml
nodepool_file_nodepool_builder_service_manage: true
nodepool_file_nodepool_builder_service_group: root
nodepool_file_nodepool_builder_service_owner: root

nodepool_file_nodepool_builder_service_config_manage: true
nodepool_file_nodepool_builder_service_config_group: root
nodepool_file_nodepool_builder_service_config_owner: root

nodepool_file_nodepool_launcher_service_manage: true
nodepool_file_nodepool_launcher_service_group: root
nodepool_file_nodepool_launcher_service_owner: root

nodepool_file_nodepool_launcher_service_config_manage: true
nodepool_file_nodepool_launcher_service_config_group: root
nodepool_file_nodepool_launcher_service_config_owner: root

nodepool_service_nodepool_builder_daemon_reload: true
nodepool_service_nodepool_builder_enabled: yes
nodepool_service_nodepool_builder_manage: true
nodepool_service_nodepool_builder_name: nodepool-builder
nodepool_service_nodepool_builder_state: started

nodepool_service_nodepool_launcher_daemon_reload: true
nodepool_service_nodepool_launcher_enabled: yes
nodepool_service_nodepool_launcher_manage: true
nodepool_service_nodepool_launcher_name: nodepool-launcher
nodepool_service_nodepool_launcher_state: started

Dependencies

Example Playbook

- name: Install nodepool
  hosts: nodepool
  roles:
    - ansible-role-nodepool