Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Leo Le Bouter
slapos
Commits
fd328019
Commit
fd328019
authored
Mar 21, 2016
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add monitor2 to resilient stack
parent
15a22114
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
39 deletions
+73
-39
stack/resilient/buildout.cfg
stack/resilient/buildout.cfg
+4
-4
stack/resilient/instance-pull-backup.cfg.in
stack/resilient/instance-pull-backup.cfg.in
+29
-30
stack/resilient/pbsready.cfg.in
stack/resilient/pbsready.cfg.in
+1
-1
stack/resilient/template-replicated.cfg.in
stack/resilient/template-replicated.cfg.in
+39
-4
No files found.
stack/resilient/buildout.cfg
View file @
fd328019
...
@@ -6,7 +6,7 @@ extends =
...
@@ -6,7 +6,7 @@ extends =
../../component/gzip/buildout.cfg
../../component/gzip/buildout.cfg
../../component/rdiff-backup/buildout.cfg
../../component/rdiff-backup/buildout.cfg
../../component/rsync/buildout.cfg
../../component/rsync/buildout.cfg
../monitor/buildout.cfg
../monitor
2
/buildout.cfg
parts =
parts =
collective.recipe.template-egg
collective.recipe.template-egg
...
@@ -38,7 +38,7 @@ eggs = collective.recipe.template
...
@@ -38,7 +38,7 @@ eggs = collective.recipe.template
recipe = slapos.recipe.template
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/pbsready.cfg.in
url = ${:_profile_base_location_}/pbsready.cfg.in
output = ${buildout:directory}/pbsready.cfg
output = ${buildout:directory}/pbsready.cfg
md5sum =
4962204261e38c782c80ab9ca71410e9
md5sum =
d2b06a13354127e9cbbf1c5d21791cb4
mode = 0644
mode = 0644
[pbsready-import]
[pbsready-import]
...
@@ -63,13 +63,13 @@ mode = 0644
...
@@ -63,13 +63,13 @@ mode = 0644
recipe = slapos.recipe.template
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-pull-backup.cfg.in
url = ${:_profile_base_location_}/instance-pull-backup.cfg.in
output = ${buildout:directory}/instance-pull-backup.cfg
output = ${buildout:directory}/instance-pull-backup.cfg
md5sum =
932acec2718e3daef839886b71e667cd
md5sum =
028dfc01dfb0d738e1b4793f67b24e8c
mode = 0644
mode = 0644
[template-replicated]
[template-replicated]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/template-replicated.cfg.in
url = ${:_profile_base_location_}/template-replicated.cfg.in
md5sum = 7
38f21e9fbfaee0d150d49da0afd7435
md5sum = 7
a6234465ae845cb262d4f94c158764e
mode = 0644
mode = 0644
destination = ${buildout:directory}/template-replicated.cfg.in
destination = ${buildout:directory}/template-replicated.cfg.in
...
...
stack/resilient/instance-pull-backup.cfg.in
View file @
fd328019
...
@@ -8,29 +8,12 @@ parts =
...
@@ -8,29 +8,12 @@ parts =
cron-entry-logrotate
cron-entry-logrotate
sshkeys-authority
sshkeys-authority
sshkeys-dropbear
sshkeys-dropbear
## Monitoring part
###Parts to add for monitoring
certificate-authority
cron-entry-monitor
cron-entry-rss
deploy-index
deploy-settings-cgi
deploy-status-cgi
deploy-status-history-cgi
setup-static-files
certificate-authority
zero-parameters
public-symlink
cgi-httpd-wrapper
cgi-httpd-graceful-wrapper
monitor-promise
monitor-instance-log-access
## Monitor for pbs
## Monitor for pbs
monitor-current-log-access
monitor-backup-log-access
monitor-check-resilient-feed-file
monitor-check-resilient-feed-file
extends = ${monitor
-template:output
}
extends = ${monitor
2-template:rendered
}
eggs-directory = ${buildout:eggs-directory}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
offline = true
...
@@ -234,11 +217,20 @@ identity-file = $${basedirectory:ssh-home}/id_rsa
...
@@ -234,11 +217,20 @@ identity-file = $${basedirectory:ssh-home}/id_rsa
#----------------
#----------------
#--
#--
#-- Slave instance list (empty default).
#-- Slave instance list (empty default).
[htpasswd]
recipe = slapos.cookbook:generate.password
storage-path = $${directory:etc}/.monitor_user
bytes = 8
username = admin
[slap-parameter]
[slap-parameter]
slave_instance_list = []
slave_instance_list = []
ignore-known-hosts-file = false
ignore-known-hosts-file = false
monitor-cors-domains =
monitor-httpd-port = 8070
monitor-title = PBS Instance
monitor-password = $${htpasswd:passwd}
monitor-username = $${htpasswd:username}
#----------------
#----------------
...
@@ -250,27 +242,34 @@ recipe = slapos.cookbook:publish
...
@@ -250,27 +242,34 @@ recipe = slapos.cookbook:publish
ssh-key = $${sshkeys-dropbear:public-key-value}
ssh-key = $${sshkeys-dropbear:public-key-value}
notification-url = http://[$${notifier:host}]:$${notifier:port}/notify
notification-url = http://[$${notifier:host}]:$${notifier:port}/notify
feeds-url = http://[$${notifier:host}]:$${notifier:port}/get/
feeds-url = http://[$${notifier:host}]:$${notifier:port}/get/
monitor-base-url = $${publish:monitor-base-url}
monitor-url = $${publish:monitor-url}
monitor-user = $${publish:monitor-user}
monitor-password = $${publish:monitor-password}
#----------------
#----------------
#--
#--
#-- Monitor
#-- Monitor
[monitor-backup-log-access]
[monitor-instance-parameter]
< = monitor-directory-access
monitor-httpd-port = $${slap-parameter:monitor-httpd-port}
source = $${directory:logrotate-backup}
monitor-title = $${slap-parameter:monitor-title}
cors-domains = $${slap-parameter:monitor-cors-domains}
username = $${slap-parameter:monitor-username}
password = $${slap-parameter:monitor-password}
[monitor-current-log-access]
[monitor-conf-parameters]
< = monitor-directory-access
private-path-list +=
source = $${basedirectory:log}
$${directory:logrotate-backup}
$${basedirectory:log}
[monitor-check-resilient-feed-file]
[monitor-check-resilient-feed-file]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
template = ${template-monitor-check-resilient-feed:location}/${template-monitor-check-resilient-feed:filename}
template = ${template-monitor-check-resilient-feed:location}/${template-monitor-check-resilient-feed:filename}
rendered = $${monitor-directory:
monitor-custom-scripts}/check-create-resilient-feed-files.py
rendered = $${monitor-directory:
promises}/check-create-resilient-feed-files
mode = 700
mode = 700
context =
context =
key input_feed_directory directory:notifier-feeds
key input_feed_directory directory:notifier-feeds
key monitor_feed_directory monitor-directory:public
-cgi
key monitor_feed_directory monitor-directory:public
key base_url publish-connection-information:feeds-url
key base_url publish-connection-information:feeds-url
raw python_executable ${buildout:executable}
raw python_executable ${buildout:executable}
stack/resilient/pbsready.cfg.in
View file @
fd328019
...
@@ -192,7 +192,7 @@ key = $${slap-parameter:authorized-key}
...
@@ -192,7 +192,7 @@ key = $${slap-parameter:authorized-key}
recipe = collective.recipe.template
recipe = collective.recipe.template
log = $${basedirectory:log}/sshd.log
log = $${basedirectory:log}/sshd.log
input = inline:#!/bin/sh
input = inline:#!/bin/sh
exec $${dropbear-server:wrapper} >> $${:log}
/sshd.log
2>&1
exec $${dropbear-server:wrapper} >> $${:log} 2>&1
output = $${rootdirectory:bin}/raw_sshd_log
output = $${rootdirectory:bin}/raw_sshd_log
mode = 700
mode = 700
...
...
stack/resilient/template-replicated.cfg.in
View file @
fd328019
{% macro replicate(namebase, nbbackup, typeexport, typeimport, heriteLeader='', heriteBackup='', slapparameter_dict={}) %}
{% macro replicate(namebase, nbbackup, typeexport, typeimport, heriteLeader='', heriteBackup='', slapparameter_dict={}
, monitor_parameter_dict={}
) %}
{% set sla_parameter_dict = {} -%}
{% set sla_parameter_dict = {} -%}
{% set monitor_dict = monitor_parameter_dict.get('parameter', {}) -%}
{% set monitor_return = ' '.join(monitor_parameter_dict.get('return', [])) -%}
{% set monitor_url_list = [] -%}
# prepare sla-parameters
# prepare sla-parameters
{% if slapparameter_dict is defined -%}
{% if slapparameter_dict is defined -%}
{% for key in slapparameter_dict.keys() -%}
{% for key in slapparameter_dict.keys() -%}
...
@@ -30,15 +33,20 @@ software-url = ${slap-connection:software-release-url}
...
@@ -30,15 +33,20 @@ software-url = ${slap-connection:software-release-url}
{{heriteLeader}}
{{heriteLeader}}
software-type = {{typeexport}}
software-type = {{typeexport}}
name = {{namebase}}0
name = {{namebase}}0
return = ssh-public-key ssh-url notification-id ip
return = ssh-public-key ssh-url notification-id ip {{ monitor_return }}
config-number = 0
config-number = 0
config-authorized-key = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}{% endfor %}
config-authorized-key = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}{% endfor %}
config-notify = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-notification-url}{% endfor %}
config-notify = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-notification-url}{% endfor %}
config-name = {{namebase}}0
# Bubble up all the instance parameters to the requested export instance.
# Bubble up all the instance parameters to the requested export instance.
{% if slapparameter_dict is defined %}
{% if slapparameter_dict is defined %}
{% for parameter_name, parameter_value in slapparameter_dict.items() %}config-{{parameter_name}} = {{parameter_value}}
{% for parameter_name, parameter_value in slapparameter_dict.items() %}config-{{parameter_name}} = {{parameter_value}}
{% endfor %}
{% endfor %}
{% endif %}
{% endif %}
{% for key, value in monitor_dict.iteritems() -%}
config-{{ key }} = {{ value }}
{% endfor -%}
{% if sla_parameter_dict == {} -%}
{% if sla_parameter_dict == {} -%}
sla-mode = unique_by_network
sla-mode = unique_by_network
{% else %}
{% else %}
...
@@ -59,6 +67,10 @@ sla-{{ key }} = {{ value }}
...
@@ -59,6 +67,10 @@ sla-{{ key }} = {{ value }}
{% endfor -%}
{% endfor -%}
{% endif -%}
{% endif -%}
{% if 'monitor-base-url' in monitor_return and not monitor_parameter_dict.get('set-monitor-url', False) -%}
{% do monitor_url_list.append('${request-' ~ namebase ~ ':connection-monitor-base-url}') -%}
{% endif -%}
{% for id in range(1,nbbackup|int) %}
{% for id in range(1,nbbackup|int) %}
[request-{{namebase}}-pseudo-replicating-{{id}}]
[request-{{namebase}}-pseudo-replicating-{{id}}]
...
@@ -70,13 +82,17 @@ name = {{namebase}}{{id}}
...
@@ -70,13 +82,17 @@ name = {{namebase}}{{id}}
software-url = ${slap-connection:software-release-url}
software-url = ${slap-connection:software-release-url}
software-type = {{typeimport}}
software-type = {{typeimport}}
return = ssh-public-key ssh-url notification-url ip takeover-url takeover-password
return = ssh-public-key ssh-url notification-url ip takeover-url takeover-password
{{ monitor_return }}
pbs-notification-id = ${slap-connection:computer-id}-${slap-connection:partition-id}-{{namebase}}-{{id}}-push
pbs-notification-id = ${slap-connection:computer-id}-${slap-connection:partition-id}-{{namebase}}-{{id}}-push
config-number = {{id}}
config-number = {{id}}
config-name = {{namebase}}{{id}}
config-authorized-key = ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}
config-authorized-key = ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}
config-on-notification = ${request-pbs-{{namebase}}-{{id}}:connection-feeds-url}${:pbs-notification-id}
config-on-notification = ${request-pbs-{{namebase}}-{{id}}:connection-feeds-url}${:pbs-notification-id}
{% for key, value in monitor_dict.iteritems() -%}
config-{{ key }} = {{ value }}
{% endfor -%}
{% if sla_parameter_dict == {} -%}
{% if sla_parameter_dict == {} -%}
sla-mode = unique_by_network
sla-mode = unique_by_network
{% else %}
{% else %}
...
@@ -102,6 +118,10 @@ feed-url-{{namebase}}-{{id}}-push = ${request-pbs-{{namebase}}-{{id}}:connection
...
@@ -102,6 +118,10 @@ feed-url-{{namebase}}-{{id}}-push = ${request-pbs-{{namebase}}-{{id}}:connection
takeover-{{namebase}}-{{id}}-url = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-takeover-url}
takeover-{{namebase}}-{{id}}-url = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-takeover-url}
takeover-{{namebase}}-{{id}}-password = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-takeover-password}
takeover-{{namebase}}-{{id}}-password = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-takeover-password}
{% if 'monitor-base-url' in monitor_return -%}
{% do monitor_url_list.append('${request-' ~ namebase ~ '-pseudo-replicating-' ~ id ~ ':connection-monitor-base-url}') -%}
{% endif -%}
{% endfor -%}
{% endfor -%}
...
@@ -157,7 +177,11 @@ software-type = pull-backup
...
@@ -157,7 +177,11 @@ software-type = pull-backup
<= request-pbs-common
<= request-pbs-common
name = PBS ({{namebase}} / {{id}})
name = PBS ({{namebase}} / {{id}})
config-ignore-known-hosts-file = ${slap-parameter:ignore-known-hosts-file}
config-ignore-known-hosts-file = ${slap-parameter:ignore-known-hosts-file}
return = ssh-key notification-url feeds-url
config-monitor-title = PBS ${slap-connection:computer-id}-{{namebase}}-{{id}}
{% for key, value in monitor_dict.iteritems() -%}
config-{{ key }} = {{ value }}
{% endfor -%}
return = ssh-key notification-url feeds-url {{ monitor_return }}
slave = false
slave = false
{% if sla_parameter_dict == {} -%}
{% if sla_parameter_dict == {} -%}
sla-mode = unique_by_network
sla-mode = unique_by_network
...
@@ -211,6 +235,17 @@ sla-instance_guid = ${request-pbs-{{namebase}}-{{id}}:instance_guid}
...
@@ -211,6 +235,17 @@ sla-instance_guid = ${request-pbs-{{namebase}}-{{id}}:instance_guid}
[publish-connection-information]
[publish-connection-information]
feed-url-{{namebase}}-{{id}}-pull = ${request-pbs-{{namebase}}-{{id}}:connection-feeds-url}${request-pull-backup-server-{{namebase}}-{{id}}:config-notification-id}
feed-url-{{namebase}}-{{id}}-pull = ${request-pbs-{{namebase}}-{{id}}:connection-feeds-url}${request-pull-backup-server-{{namebase}}-{{id}}:config-notification-id}
{% if 'monitor-base-url' in monitor_return -%}
{% do monitor_url_list.append('${request-pbs-' ~ namebase ~ '-' ~ id ~ ':connection-monitor-base-url}') -%}
{% endif -%}
{% if monitor_parameter_dict.get('set-monitor-url', False) -%}
[request-{{namebase}}]
config-monitor-url-list = {{ monitor_url_list | join(' ') }}
{% else -%}
[monitor-conf-parameters]
monitor-url-list = {{ monitor_url_list | join(' ') }}
{% endif -%}
[request-pull-backup-server-{{namebase}}-backup-{{id}}]
[request-pull-backup-server-{{namebase}}-backup-{{id}}]
<= request-pbs-common
<= request-pbs-common
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment