Compare commits

...

43 Commits

Author SHA1 Message Date
c2eb671dcb Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2021-05-11 18:29:22 +02:00
3a82a76c39 variable to personalise password length 2021-05-11 18:29:17 +02:00
9a7b97390b Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2021-04-24 10:20:14 +02:00
b83e20ce22 open port 8080 (for terraform) 2021-04-24 10:20:03 +02:00
a2e81a0cb9 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-11-14 19:01:57 +01:00
4e4a6469d5 add systemd notifier 2020-11-14 19:01:52 +01:00
aee885250c Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-11-14 08:16:13 +01:00
d7d406ffcc add pki informations 2020-11-14 08:16:08 +01:00
97980afed9 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-10-20 22:37:03 +02:00
b0e81c15f7 start risotto after postgres 2020-10-20 22:36:54 +02:00
91122eac3d add eole-risotto-setting dependency 2020-10-14 19:10:23 +02:00
9fd1f79223 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-10-14 18:31:11 +02:00
d55098922b add password support 2020-10-14 18:31:05 +02:00
b51d36d78f Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-20 21:34:02 +02:00
e090026120 mkdir 2020-09-20 21:33:50 +02:00
3bd92780f5 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-19 10:34:09 +02:00
c3dc0ca6ba update config 2020-09-19 10:34:00 +02:00
db93458bfb typo 2020-09-19 09:38:32 +02:00
cbf5d67cb8 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-19 09:23:41 +02:00
330e639b1c create risotto user 2020-09-19 09:23:13 +02:00
58ebb8e1ad risotto is started with a specific user 2020-09-19 09:20:42 +02:00
30836804b2 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-16 15:57:37 +02:00
709538e4e4 create directories 2020-09-16 15:53:58 +02:00
31e866bb08 add debian/eole-risotto.install file 2020-09-16 14:37:09 +02:00
83ac678b2b Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-16 14:06:59 +02:00
897ebdf5e3 resize partition 2020-09-16 12:07:06 +02:00
1ac00b5a60 srv should have all extra disk size 2020-09-16 11:18:32 +02:00
2c86780277 srv directory should be volatile 2020-09-16 11:17:05 +02:00
a2fed34dab do not create directory in /srv 2020-09-16 11:16:29 +02:00
5e796f17d2 Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop 2020-09-16 08:14:22 +02:00
408fdf22a2 partitioning 2020-09-16 08:13:26 +02:00
f13e0b8555 partitioning 2020-09-16 08:04:25 +02:00
940a76698f add dependence to sql file and create eole-risotto-all package 2020-09-06 09:51:57 +02:00
9540ff6c8f remove sql file and dispatch it in risotto-*-sql packages 2020-09-06 09:48:32 +02:00
7becbca64e Changement de nom de table SQL + ajout des colonnes OSName/OSVersion/Compatibilities pour les AS 2020-09-05 16:38:05 +02:00
54c895f822 les servermodels ne sont plus associés à une source 2020-09-02 09:04:49 +02:00
f371c96ff3 release_name and release_distribution 2020-08-26 15:32:09 +02:00
0d938a2389 add infraserver table 2020-08-19 11:37:15 +02:00
1873722043 add infraserver table 2020-08-19 11:36:54 +02:00
2dce20e691 update dependencies 2020-08-12 14:08:20 +02:00
66f83826e0 update dependencies 2020-08-12 14:00:22 +02:00
2c9b78ee14 risotto-* => python3-risotto-* 2020-08-12 11:23:33 +02:00
ccd30b7ab5 Add dependencies previously installed from pypi 2020-08-12 09:00:36 +02:00
14 changed files with 136 additions and 220 deletions

View File

@ -1,151 +0,0 @@
-- Deployment
CREATE TABLE Deployment (
DeploymentId SERIAL PRIMARY KEY,
ProviderType VARCHAR(255) NOT NULL,
TargetType VARCHAR(255) NOT NULL,
TargetName VARCHAR(255) NOT NULL,
FactoryCluster VARCHAR(255),
FactoryNodeName VARCHAR(255),
CPU INTEGER,
VCPU INTEGER,
Memory INTEGER,
Labels VARCHAR(255) [] DEFAULT '{}',
UNIQUE (TargetType, TargetName)
);
CREATE INDEX Deployment_FactoryNodeName_index ON Deployment(FactoryNodeName);
-- Cluster
CREATE TABLE FactoryCluster (
ClusterId SERIAL PRIMARY KEY,
ClusterName VARCHAR(255) NOT NULL UNIQUE,
ClusterDescription VARCHAR(255) NOT NULL,
VirtualIp VARCHAR(15) NOT NULL,
ZoneName VARCHAR(255) NOT NULL
);
-- Node in Cluster
CREATE TABLE FactoryClusterNode (
ClusterNodeId SERIAL PRIMARY KEY,
ClusterId INTEGER NOT NULL,
ServerName VARCHAR(255) NOT NULL UNIQUE,
FOREIGN KEY (ClusterId) REFERENCES FactoryCluster(ClusterId)
);
CREATE INDEX FactoryClusterNode_ServerName_index ON FactoryClusterNode(ServerName);
-- Site
CREATE TABLE Site (
SiteId SERIAL PRIMARY KEY,
SiteName VARCHAR(255) NOT NULL UNIQUE,
SiteDescription VARCHAR(255) NOT NULL
);
-- Zone
CREATE TABLE Zone (
ZoneId SERIAL PRIMARY KEY,
ZoneName VARCHAR(255) NOT NULL UNIQUE,
ZoneDescription VARCHAR(255) NOT NULL,
SitesName VARCHAR(255) [] NOT NULL
);
-- Server
CREATE TABLE Server (
ServerId SERIAL PRIMARY KEY,
ServerName VARCHAR(255) NOT NULL UNIQUE,
ServerDescription VARCHAR(255) NOT NULL,
ServerServermodelName VARCHAR(255) NOT NULL,
ReleaseDistribution VARCHAR(255) NOT NULL,
SiteName VARCHAR(255) NOT NULL,
ZonesName VARCHAR(255) [] NOT NULL,
ZonesIP VARCHAR(255) [] NOT NULL
);
-- Source
CREATE TABLE Source (
SourceId SERIAL PRIMARY KEY,
SourceName VARCHAR(255) NOT NULL UNIQUE,
SourceDirectory TEXT
);
-- Release
CREATE TABLE Release (
ReleaseId SERIAL PRIMARY KEY,
ReleaseName VARCHAR(255) NOT NULL,
ReleaseSourceId INTEGER NOT NULL,
ReleaseDistribution VARCHAR(20) CONSTRAINT releasedistribution_choice CHECK (ReleaseDistribution IN ('last', 'n-1', 'n-2')),
UNIQUE (ReleaseName, ReleaseSourceId),
UNIQUE (ReleaseDistribution, ReleaseSourceId),
FOREIGN KEY (ReleaseSourceId) REFERENCES Source(SourceId)
);
-- Servermodel
CREATE TABLE Servermodel (
ServermodelId SERIAL PRIMARY KEY,
ServermodelName VARCHAR(255) NOT NULL,
ServermodelDescription VARCHAR(255) NOT NULL,
Osname VARCHAR(255),
Osversion VARCHAR(255),
ISO VARCHAR(255),
ServermodelParents VARCHAR(255) [] DEFAULT '{}',
SourceName VARCHAR(255) NOT NULL,
ReleaseDistribution VARCHAR(255) NOT NULL,
ServermodelApplicationserviceId INTEGER NOT NULL,
UNIQUE (ServermodelName, SourceName, ReleaseDistribution)
);
CREATE INDEX ServermodelApplicationserviceId_index ON Servermodel (ServermodelApplicationserviceId);
-- Applicationservice
CREATE TABLE Applicationservice (
ApplicationserviceId SERIAL PRIMARY KEY,
ApplicationserviceName VARCHAR(255) NOT NULL,
ApplicationserviceDescription VARCHAR(255) NOT NULL,
ApplicationserviceReleaseId INTEGER NOT NULL,
--ApplicationserviceLVIS VARCHAR(255) NOT NULL,
--ApplicationserviceLVIP VARCHAR(255) NOT NULL,
--ApplicationserviceLVMP VARCHAR(255) NOT NULL,
OS JSON,
UNIQUE (ApplicationserviceName, ApplicationserviceReleaseId)
);
CREATE TABLE ApplicationserviceDependency (
ApplicationserviceId INTEGER NOT NULL,
ApplicationserviceDependencyId INTEGER NOT NULL,
UNIQUE(ApplicationserviceId, ApplicationserviceDependencyId),
FOREIGN KEY (ApplicationserviceId) REFERENCES Applicationservice(ApplicationserviceId),
FOREIGN KEY (ApplicationserviceDependencyId) REFERENCES Applicationservice(ApplicationserviceId)
);
-- Log
CREATE TABLE log(
Msg VARCHAR(255) NOT NULL,
Level VARCHAR(10) NOT NULL,
Path VARCHAR(255),
Username VARCHAR(100) NOT NULL,
Data JSON,
Date timestamp DEFAULT current_timestamp
);
-- User, Role and ACL
CREATE TABLE RisottoUser (
UserId SERIAL PRIMARY KEY,
UserLogin VARCHAR(100) NOT NULL UNIQUE,
UserName VARCHAR(100) NOT NULL,
UserSurname VARCHAR(100) NOT NULL
);
CREATE TABLE UserRole (
RoleId SERIAL PRIMARY KEY,
RoleUserId INTEGER NOT NULL,
RoleName VARCHAR(255) NOT NULL,
RoleAttribute VARCHAR(255),
RoleAttributeValue VARCHAR(255),
FOREIGN KEY (RoleUserId) REFERENCES RisottoUser(UserId)
);
CREATE TABLE URI (
URIId SERIAL PRIMARY KEY,
URIName VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE RoleURI (
RoleName VARCHAR(255) NOT NULL,
URIId INTEGER NOT NULL,
FOREIGN KEY (URIId) REFERENCES URI(URIId),
PRIMARY KEY (RoleName, URIId)
);

33
debian/control vendored
View File

@ -13,21 +13,30 @@ Architecture: any
Depends: ${misc:Depends},
eole-db,
eole-postgresql,
python3-aiohttp,
risotto-user,
risotto-setting,
risotto-provider,
risotto-user-sql,
risotto-setting-sql,
risotto-provider-sql,
risotto-infra-sql,
risotto-message,
risotto-infra,
cadoles-risotto-seed,
risotto,
tiramisu,
tiramisu-api,
rougail,
cucchiaiata,
tiramisu-cmdline-parser
risotto
Description: configuration pour lintégration de risotto dans EOLE
.
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet.
Package: eole-risotto-all
Architecture: any
Depends: ${misc:Depends},
eole-risotto,
eole-risotto-setting,
python3-risotto-user,
python3-risotto-setting,
python3-risotto-provider,
python3-risotto-infra,
cadoles-risotto-seed,
cucchiaiata,
eole-risotto
Description: configuration pour lintégration de risotto dans EOLE
.
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet.

View File

@ -1,5 +0,0 @@
/srv/risotto/configurations
/srv/risotto/tmp
/srv/risotto/seed
/srv/factory
/var/cache/risotto/servermodel

1
debian/eole-risotto.install vendored Normal file
View File

@ -0,0 +1 @@
usr

12
debian/eole-risotto.postinst vendored Normal file
View File

@ -0,0 +1,12 @@
#!/bin/sh
set -e
if [ "$1" = configure ]; then
# Make sure the administrative user exists
if ! getent passwd risotto > /dev/null; then
adduser --system --home /nonexistent --no-create-home --group --gecos "User for risotto" risotto --quiet
fi
fi
exit 0

1
debian/risotto.service vendored Symbolic link
View File

@ -0,0 +1 @@
../risotto.service

2
debian/rules vendored
View File

@ -8,4 +8,4 @@
dh $@
override_dh_installsystemd:
dh_installsystemd -peole-risotto --no-enable --no-start --no-stop-on-upgrade
dh_installsystemd --name=risotto --no-enable --no-start --no-stop-on-upgrade

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<creole>
<variables>
<family name='système'>
<!-- We need to recalculate the variables -->
<variable name='eole_lv_names' redefine='True' remove_check='True' />
<variable name='eole_lv_standard_extends' redefine='True' remove_check='True' />
</family>
</variables>
<constraints>
<!-- Default AmonEcole* logical volumes -->
<auto name='calc_multi_val' target='eole_lv_names'>
<param>root</param>
<param>tmp</param>
</auto>
<auto name='calc_multi_val' target='eole_lv_standard_extends'>
<param type='number'>100</param>
<param type='number'>0</param>
</auto>
</constraints>
<help/>
</creole>
<!-- vim: ts=4 sw=4 expandtab
-->

View File

@ -2,10 +2,12 @@
<creole>
<files>
<service>risotto</service>
<file filelist='risotto' name='/etc/risotto/risotto.conf' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/systemd/system/risotto.service' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/eole/eole-db.d/risotto.yml' mkdir='True' rm='True'/>
<file filelist='risotto' name='/etc/eole/eole-db.d/tiramisu.yml' mkdir='True' rm='True'/>
<service_access service='risotto'>
<port>8080</port>
</service_access>
<file name='/etc/risotto/risotto.conf' owner="risotto" mkdir='True' rm='True'/>
<file name='/etc/eole/eole-db.d/risotto.yml' mkdir='True' rm='True'/>
<file name='/etc/eole/eole-db.d/tiramisu.yml'/>
</files>
<variables>
<family name='risotto'>
@ -34,33 +36,17 @@
<value>localhost</value>
</variable>
<variable name='risotto_messages_dir' type='filename' description='Emplacement des messages de lAPI' hidden='True'>
<value>/srv/risotto-message/messages</value>
<value>/usr/share/risotto-message/messages</value>
</variable>
<variable name='risotto_cache_dir' type='filename' description='Emplacement du cache' hidden='True'>
<value>/var/cache/risotto</value>
<value>/srv/risotto/cache</value>
</variable>
<variable name='risotto_seed_dir' type='filename' description='Emplacement des descriptions de services' hidden='True'>
<value>/srv/risotto/seed</value>
</variable>
<variable name='risotto_factory_configuration_dir' type='filename' description='Emplacement de la configuration du provider factory' hidden='True'>
<value>/srv/factory/</value>
<variable name='risotto_images_dir' type='filename' description='Emplacement des images disques' hidden='True'>
<value>/srv/risotto/images</value>
</variable>
</family>
</variables>
<constraints>
</constraints>
<help>
<variable name='risotto_configuration_dir'>Aide pour la variable risotto_configuration_dir</variable>
<variable name='risotto_temp_dir'>Aide pour la variable risotto_temp_dir</variable>
<variable name='risotto_default_user'>Aide pour la variable risotto_default_user</variable>
<variable name='risotto_main_dbname'>Aide pour la variable risotto_main_dbname</variable>
<variable name='risotto_tiramisu_dbname'>Aide pour la variable risotto_tiramisu_dbname</variable>
<variable name='risotto_db_user'>Aide pour la variable risotto_db_user</variable>
<variable name='risotto_tiramisu_db_user'>Aide pour la variable risotto_tiramisu_db_user</variable>
<variable name='risotto_db_address'>Aide pour la variable risotto_db_address</variable>
<variable name='risotto_messages_dir'>Aide pour la variable risotto_messages_dir</variable>
<variable name='risotto_cache_dir'>Aide pour la variable risotto_cache_dir</variable>
<variable name='risotto_seed_dir'>Aide pour la variable risotto_seed_dir</variable>
<variable name='risotto_factory_configuration_dir'>Aide pour la variable risotto_factory_configuration_dir</variable>
</help>
</creole>

9
posttemplate/20-directories Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
for dir in risotto_cache_dir risotto_seed_dir risotto_temp_dir risotto_configuration_dir risotto_images_dir; do
dirname=$(CreoleGet $dir)
mkdir -p $dirname
chown risotto: $dirname
done
exit 0

View File

@ -1,9 +1,12 @@
[Unit]
Description=risotto
After=postgresql.service
[Service]
EnvironmentFile=/etc/risotto/risotto.conf
Type=notify
ExecStart=/usr/bin/risotto-server
User=risotto
Group=risotto
[Install]
WantedBy=multi-user.target

View File

@ -1,15 +1,34 @@
CONFIGURATION_DIR=%%getVar('risotto_configuration_dir')
PROVIDER_FACTORY_CONFIG_DIR=%%getVar('risotto_factory_configuration_dir')
TMP_DIR=%%getVar('risotto_temp_dir')
DEFAULT_USER=%%getVar('risotto_default_user')
RISOTTO_DB_NAME=%%getVar('risotto_main_dbname')
RISOTTO_DB_USER=%%getVar('risotto_db_user')
CONFIGURATION_DIR=%%risotto_configuration_dir
TMP_DIR="%%risotto_temp_dir"
IMAGE_PATH="%%risotto_images_dir"
DEFAULT_USER="%%risotto_default_user"
RISOTTO_DB_NAME="%%risotto_main_dbname"
RISOTTO_DB_USER="%%risotto_db_user"
RISOTTO_DB_PASSWORD=replace_me
TIRAMISU_DB_NAME=%%getVar('risotto_tiramisu_dbname')
TIRAMISU_DB_USER=%%getVar('risotto_tiramisu_db_user')
TIRAMISU_DB_NAME="%%risotto_tiramisu_dbname"
TIRAMISU_DB_USER="%%risotto_tiramisu_db_user"
TIRAMISU_DB_PASSWORD=replace_me
DB_ADDRESS=%%getVar('risotto_db_address')
MESSAGE_PATH=%%getVar('risotto_messages_dir')
CACHE_ROOT_PATH=%%getVar('risotto_cache_dir')
SRV_SEED_PATH=%%getVar('risotto_seed_dir')
PYTHONPATH="/usr/lib/python3.6/dist-packages:$PYTHONPATH"
RISOTTO_URL="http://%%nom_domaine_machine:8080/"
DB_ADDRESS="%%risotto_db_address"
MESSAGE_PATH="%%risotto_messages_dir"
CACHE_ROOT_PATH="%%risotto_cache_dir"
SRV_SEED_PATH="%%risotto_seed_dir"
%set %%var = %%getVar('celeryrisotto_db_user', None)
%if not %%is_empty(%%var)
CELERYRISOTTO_DB_NAME="%%celeryrisotto_main_dbname"
CELERYRISOTTO_DB_USER="%%var"
CELERYRISOTTO_DB_PASSWORD=replace_me
%end if
%set %%var = %%getVar('password_admin_username', None)
%if not %%is_empty(%%var)
PASSWORD_ADMIN_USERNAME="%%password_admin_username"
PASSWORD_ADMIN_EMAIL="%%password_admin_email"
PASSWORD_ADMIN_PASSWORD="%%password_admin_password"
PASSWORD_DEVICE_IDENTIFIER="%%password_device_identifier"
PASSWORD_URL="https://%%nom_domaine_machine:8001/"
PASSWORD_LENGTH=%%password_length
%end if
%if %%getVar('lemur_db_name', None)
PKI_ADMIN_PASSWORD="%%lemur_admin_password"
PKI_ADMIN_EMAIL="%%lemur_admin_email"
%end if

View File

@ -1,17 +1,23 @@
%set %%dbname = %%getVar('risotto_main_dbname')
%from os import listdir
%set %%dbname = %%risotto_main_dbname
---
dbuser: %%getVar('risotto_db_user')
dbuser: %%risotto_db_user
dbuser_options:
- LOGIN
- LOGIN
privileges:
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%getVar('risotto_db_address')
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%risotto_db_address
dbport: 5432
dbtype: postgres
dbname: %%dbname
template: 'template0'
sqlscripts: ['/usr/share/eole/db/eole-risotto/gen/create_tables.sql']
sqlscripts:
%for %%file in %%listdir('/usr/share/eole/db/eole-risotto/gen/')
%if %%file.endswith('.sql')
- /usr/share/eole/db/eole-risotto/gen/%%file
%end if
%end for
pwd_files:
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'RISOTTO_DB_PASSWORD='}
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'RISOTTO_DB_PASSWORD='}

View File

@ -1,16 +1,16 @@
%set %%dbname = %%getVar('risotto_tiramisu_dbname')
%set %%dbname = %%risotto_tiramisu_dbname
---
dbuser: %%getVar('risotto_tiramisu_db_user')
dbuser: %%risotto_tiramisu_db_user
dbuser_options:
- LOGIN
privileges:
%%{dbname}.public.*: 'ALL'
%%{dbname}.public: 'ALL'
%%{dbname}: 'ALL'
dbhost: %%getVar('risotto_db_address')
dbhost: %%risotto_db_address
dbport: 5432
dbtype: postgres
dbname: %%getVar('risotto_tiramisu_dbname')
dbname: %%risotto_tiramisu_dbname
template: 'template0'
pwd_files:
- {'file': '/etc/risotto/risotto.conf', 'pattern': 'TIRAMISU_DB_PASSWORD='}