From bde023eee8d33173933fdd1dee01b44f79860ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Guillot?= Date: Tue, 1 Nov 2016 16:40:21 -0400 Subject: [PATCH] Make config files compatible with Almanach 3.3.x Change-Id: I87becaf01439ba6397d7b9e02c91546dfb4dd1e1 --- defaults/main.yml | 9 +- tasks/almanach_init_api_upstart.yml | 3 +- tasks/almanach_init_collector_upstart.yml | 3 +- tasks/almanach_install.yml | 19 ++-- tasks/almanach_post_install.yml | 3 - tasks/main.yml | 1 + templates/almanach-api-systemd.j2 | 2 +- templates/almanach-api-upstart.j2 | 2 +- templates/almanach-collector-systemd.j2 | 2 +- templates/almanach-collector-upstart.j2 | 2 +- templates/almanach.cfg.j2 | 132 +++++++++++++++++----- templates/logging.cfg.j2 | 26 ----- tests/test-functional-almanach.yml | 1 + 13 files changed, 132 insertions(+), 73 deletions(-) delete mode 100644 templates/logging.cfg.j2 diff --git a/defaults/main.yml b/defaults/main.yml index 51758a8..4064cb9 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +almanach_version: 3.3.2 + almanach_collector_program_name: almanach-collector almanach_api_program_name: almanach-api @@ -20,6 +22,12 @@ almanach_service_names: - "almanach-api" - "almanach-collector" +almanach_requires_apt_packages: + - python3-pip + +almanach_requires_pip_packages: + - virtualenv + almanach_system_user_name: almanach almanach_system_group_name: almanach almanach_system_shell: /bin/false @@ -32,7 +40,6 @@ almanach_app_dir: /opt/almanach almanach_config_dir: /etc/almanach almanach_config_file: /etc/almanach/almanach.cfg -almanach_logging_config_file: /etc/almanach/logging.cfg almanach_logrotate_config_file: /etc/logrotate.d/almanach almanach_auth_token: secret diff --git a/tasks/almanach_init_api_upstart.yml b/tasks/almanach_init_api_upstart.yml index 80ebc76..e647c49 100644 --- a/tasks/almanach_init_api_upstart.yml +++ b/tasks/almanach_init_api_upstart.yml @@ -25,8 +25,7 @@ - Restart almanach services - name: Reload init scripts - shell: | - initctl reload-configuration + command: initctl reload-configuration when: upstart_init | changed notify: - Restart almanach services diff --git a/tasks/almanach_init_collector_upstart.yml b/tasks/almanach_init_collector_upstart.yml index 5bac0f9..bb3d961 100644 --- a/tasks/almanach_init_collector_upstart.yml +++ b/tasks/almanach_init_collector_upstart.yml @@ -25,8 +25,7 @@ - Restart almanach services - name: Reload init scripts - shell: | - initctl reload-configuration + command: initctl reload-configuration when: upstart_init | changed notify: - Restart almanach services diff --git a/tasks/almanach_install.yml b/tasks/almanach_install.yml index 18254f6..2d6f882 100644 --- a/tasks/almanach_install.yml +++ b/tasks/almanach_install.yml @@ -17,15 +17,16 @@ apt: update_cache=yes become: True -- name: Install Python dependencies - apt: name={{ item }} state=present - with_items: - - python2.7 - - python-dev - - python-pip +- name: Install apt packages + apt: + name: "{{ almanach_requires_apt_packages | join(' ') }}" + state: present -- name: Install Virtualenv - pip: name=virtualenv state=latest +- name: Install pip packages + pip: + name: "{{ almanach_requires_pip_packages | join(' ') }}" + state: present + executable: pip3 - name: Install Almanach - pip: name=almanach virtualenv={{ almanach_app_dir }} virtualenv_python=python2.7 + pip: name=almanach version={{ almanach_version }} virtualenv={{ almanach_app_dir }} virtualenv_python=python3 diff --git a/tasks/almanach_post_install.yml b/tasks/almanach_post_install.yml index d35e988..2f96bd5 100644 --- a/tasks/almanach_post_install.yml +++ b/tasks/almanach_post_install.yml @@ -19,9 +19,6 @@ - name: Create almanach config file template: src=almanach.cfg.j2 dest={{ almanach_config_file }} -- name: Create almanach config logging file - template: src=logging.cfg.j2 dest={{ almanach_logging_config_file }} - - name: Create log directory file: path={{ almanach_log_dir }} state=directory owner={{ almanach_system_user_name }} group={{ almanach_system_group_name }} diff --git a/tasks/main.yml b/tasks/main.yml index e595d16..8064b72 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -26,6 +26,7 @@ - name: Check init system command: cat /proc/1/comm + changed_when: false register: _pid1_name tags: - always diff --git a/templates/almanach-api-systemd.j2 b/templates/almanach-api-systemd.j2 index eb16677..b61e3b9 100644 --- a/templates/almanach-api-systemd.j2 +++ b/templates/almanach-api-systemd.j2 @@ -10,7 +10,7 @@ Type=simple User={{ almanach_system_user_name }} Group={{ almanach_system_group_name }} -ExecStart={{ almanach_app_dir }}/bin/almanach api {{ almanach_config_file }} --host {{ almanach_listen_ip }} --port {{ almanach_port }} --logging {{ almanach_logging_config_file }} +ExecStart={{ almanach_app_dir }}/bin/almanach-api --config-file={{ almanach_config_file }} --log-file={{ almanach_log_file }} TimeoutSec=300 Restart=on-failure diff --git a/templates/almanach-api-upstart.j2 b/templates/almanach-api-upstart.j2 index 4e0c8a1..5843eda 100644 --- a/templates/almanach-api-upstart.j2 +++ b/templates/almanach-api-upstart.j2 @@ -10,5 +10,5 @@ setuid {{ almanach_system_user_name }} setgid {{ almanach_system_group_name }} script - exec {{ almanach_app_dir }}/bin/almanach api {{ almanach_config_file }} --host {{ almanach_listen_ip }} --port {{ almanach_port }} --logging {{ almanach_logging_config_file }} + exec {{ almanach_app_dir }}/bin/almanach-api --config-file={{ almanach_config_file }} --log-file={{ almanach_log_file }} end script diff --git a/templates/almanach-collector-systemd.j2 b/templates/almanach-collector-systemd.j2 index 010efeb..d27aa77 100644 --- a/templates/almanach-collector-systemd.j2 +++ b/templates/almanach-collector-systemd.j2 @@ -10,7 +10,7 @@ Type=simple User={{ almanach_system_user_name }} Group={{ almanach_system_group_name }} -ExecStart={{ almanach_app_dir }}/bin/almanach collector {{ almanach_config_file }} --logging {{ almanach_logging_config_file }} +ExecStart={{ almanach_app_dir }}/bin/almanach-collector --config-file={{ almanach_config_file }} --log-file={{ almanach_log_file }} TimeoutSec=300 Restart=on-failure diff --git a/templates/almanach-collector-upstart.j2 b/templates/almanach-collector-upstart.j2 index 71b7fe4..7e40b62 100644 --- a/templates/almanach-collector-upstart.j2 +++ b/templates/almanach-collector-upstart.j2 @@ -10,5 +10,5 @@ setuid {{ almanach_system_user_name }} setgid {{ almanach_system_group_name }} script - exec {{ almanach_app_dir }}/bin/almanach collector {{ almanach_config_file }} --logging {{ almanach_logging_config_file }} + exec {{ almanach_app_dir }}/bin/almanach-collector --config-file={{ almanach_config_file }} --log-file={{ almanach_log_file }} end script diff --git a/templates/almanach.cfg.j2 b/templates/almanach.cfg.j2 index 2f785e5..b02077c 100644 --- a/templates/almanach.cfg.j2 +++ b/templates/almanach.cfg.j2 @@ -1,29 +1,109 @@ -[ALMANACH] -auth_token={{ almanach_auth_token }} -auth_strategy={{ almanach_auth_strategy }} -volume_existence_threshold={{ almanach_volume_existence_threshold }} -device_metadata_whitelist={{ almanach_metadata_whitelist }} +[DEFAULT] -[MONGODB] -url={{ almanach_mongodb_url }} -database={{ almanach_mongodb_database }} -indexes=project_id,start,end +[api] -[RABBITMQ] -url={{ almanach_rabbitmq_url }} -queue={{ almanach_rabbitmq_queue }} -exchange={{ almanach_rabbitmq_exchange }} -routing.key={{ almanach_rabbitmq_routing_key }} -retry.time.to.live={{ almanach_rabbitmq_retry_time_to_live }} -retry.exchange={{ almanach_rabbitmq_exchange }} -retry.maximum={{ almanach_rabbitmq_retry_maximum }} -retry.queue={{ almanach_rabbitmq_retry_queue }} -retry.return.exchange={{ almanach_rabbitmq_retry_return_exchange }} -dead.queue={{ almanach_rabbitmq_dead_queue }} -dead.exchange={{ almanach_rabbitmq_dead_exchange }} +# +# From almanach +# -[KEYSTONE] -username={{ almanach_keystone_username }} -password={{ almanach_keystone_password }} -tenant_name={{ almanach_keystone_tenant_name }} -auth_url={{ almanach_keystone_auth_url }} +# IP address to listen on (IP address value) +bind_ip = {{ almanach_listen_ip }} + +# TCP port number to listen on (port value) +# Minimum value: 0 +# Maximum value: 65535 +bind_port = {{ almanach_port }} + + +[auth] + +# +# From almanach +# + +# Authentication driver for the API (string value) +strategy = {{ almanach_auth_strategy }} + +# Private key for private key authentication (string value) +private_key = {{ almanach_auth_token }} + +# Keystone service username (string value) +keystone_username = {{ almanach_keystone_username }} + +# Keystone service password (string value) +keystone_password = {{ almanach_keystone_password }} + +# Keystone service tenant (string value) +keystone_tenant = {{ almanach_keystone_tenant_name }} + +# Keystone URL (string value) +keystone_url = {{ almanach_keystone_auth_url }} + + +[collector] + +# +# From almanach +# + +# RabbitMQ connection URL (string value) +url = {{ almanach_rabbitmq_url }} + +# RabbitMQ connection heartbeat (integer value) +heartbeat = 540 + +# Default queue name (string value) +default_queue = {{ almanach_rabbitmq_queue }} + +# Default exchange name (string value) +default_exchange = {{ almanach_rabbitmq_exchange }} + +# Default queue routing key (string value) +default_routing_key = {{ almanach_rabbitmq_routing_key }} + +# Retry queue name (string value) +retry_queue = {{ almanach_rabbitmq_retry_queue }} + +# Retry exchange name (string value) +retry_exchange = {{ almanach_rabbitmq_exchange }} + +# Time to live value of messages sent on the retry queue (integer +# value) +retry_ttl = {{ almanach_rabbitmq_retry_time_to_live }} + +# Maximal number of message retries (integer value) +max_retries = {{ almanach_rabbitmq_retry_maximum }} + +# Dead queue name (string value) +dead_queue = {{ almanach_rabbitmq_dead_queue }} + +# Dead exchange name (string value) +dead_exchange = {{ almanach_rabbitmq_dead_exchange }} + + +[database] + +# +# From almanach +# + +# Database driver (string value) +driver = mongodb + +# Database connection URL (string value) +connection_url = {{ almanach_mongodb_url }} + + +[resources] + +# +# From almanach +# + +# Volume existence threshold (integer value) +volume_existence_threshold = {{ almanach_volume_existence_threshold }} + +# DEPRECATED: Metadata to include in entity (string value) +# This option is deprecated for removal. +# Its value may be silently ignored in the future. +device_metadata_whitelist = {{ almanach_metadata_whitelist }} diff --git a/templates/logging.cfg.j2 b/templates/logging.cfg.j2 deleted file mode 100644 index a006172..0000000 --- a/templates/logging.cfg.j2 +++ /dev/null @@ -1,26 +0,0 @@ -[loggers] -keys=root - -[logger_root] -handlers=consoleHandler,fileHandler -level=DEBUG - -[handlers] -keys=consoleHandler,fileHandler - -[handler_consoleHandler] -class=StreamHandler -formatter=defaultFormatter -args=(sys.stdout,) - -[handler_fileHandler] -class=handlers.WatchedFileHandler -args=('{{ almanach_log_file }}','a') -formatter=defaultFormatter - -[formatters] -keys=defaultFormatter - -[formatter_defaultFormatter] -format=%(asctime)s [%(process)d] [%(levelname)s] [%(module)s] %(message)s -datefmt=%Y-%m-%d %H:%M:%S diff --git a/tests/test-functional-almanach.yml b/tests/test-functional-almanach.yml index 8dc97a9..de25895 100644 --- a/tests/test-functional-almanach.yml +++ b/tests/test-functional-almanach.yml @@ -21,6 +21,7 @@ - name: Install httplib2 so we can use the uri module pip: name: httplib2 + executable: pip3 - name: Check the almanach-api uri: url: "http://localhost:8000/info"