To configure the ansible scripts the file ansible.config.yml needs to be created in the root of the ansible directory.
A template to this file has already been created called ansible.config.yml.template. In this configuration file a few changed need to be made:
The use_local_repository variable determines for ansible which repositories to deploy. By filling in 'yes', ansible will deploy the supplied *.tar files. By filling in 'no', ansible will clone the projects from the urls:
use_local_repository: 'no'Be sure to have the *.tar files in the root of jiskefet-project-v*** folder if local repositories are to be used. The hierarchy should be:
jiskefet-project-v**/
|
|–- sfs-ansible/
|–- jiskefet-api.tar
|–- jiskefet-ui.tar
* i.e. jiskefet-project-v1.0
If use_local_repository is set to 'no', the project will be retrieved from GitHub. The default repository URL's are:
JISKEFET_API: 'https://github.com/SoftwareForScience/jiskefet-api.git'
JISKEFET_UI: 'https://github.com/SoftwareForScience/jiskefet-ui.git'If the repository URL's are different, please add the following to the ansible.config.yml file:
remote_repository_url:
JISKEFET_API: 'FILL_IN_YOUR_REPOSITORY_URL_HERE'
JISKEFET_UI: 'FILL_IN_YOUR_REPOSITORY_URL_HERE'The default branch it pulls is currently set to 'master'. If you want to specify another branch, please add the following to the ansible.config.yml file:
repository_branch:
JISKEFET_API: 'FILL_IN_YOUR_BRANCH_HERE'
JISKEFET_UI: 'FILL_IN_YOUR_BRANCH_HERE'Specify whether the application should use the CERN SSO. If the value is set to 'false', the application will use Github's SSO. The USE_CERN_SSO flag is set to 'false' by default, if you want to use CERN's SSO, please add the following to the ansible.config.yml file:
USE_CERN_SSO: 'true'Change the variable host to the ip address of the database server, the username and password to set the
credentials for the database and the database variable to a database name.
TYPEORM_HOST: 'FILL_IN_YOUR_HOST_HERE'
TYPEORM_USERNAME: 'FILL_IN_YOUR_USERNAME_HERE'
TYPEORM_PASSWORD: 'FILL_IN_YOUR_PASSWORD_HERE'
TYPEORM_DATABASE: 'FILL_IN_YOUR_DATABASE_HERE'Fill in the OAuth client id, client secret and the redirect uri (this is the url should end with '/callback').
jiskefet_oauth_settings:
CLIENT_ID: 'FILL_IN_YOUR_CLIENT_ID_HERE'
CLIENT_SECRET: 'FILL_IN_YOUR_CLIENT_SECRET_HERE'
AUTH_REDIRECT_URI: 'FILL_IN_YOUR_AUTH_REDIRECT_URI_HERE'Fill in the values only if the 'USE_CERN_SSO' setting is set to 'true'.
jiskefet_cern_oauth_settings:
CERN_REGISTERED_URI: 'FILL_IN_YOUR_CERN_REGISTERED_URI_HERE'These settings are optional, fill the settings in if you want to run 'npm run test'. The test will then run against a test database.
jiskefet_api_optional_settings:
TEST_DB_HOST: FILL_IN_YOUR_HOST_HERE'
TEST_DB_USERNAME: 'FILL_IN_YOUR_USERNAME_HERE'
TEST_DB_PASSWORD: 'FILL_IN_YOUR_PASSWORD_HERE'
TEST_DB_DATABASE: 'FILL_IN_YOUR_DATABASE_HERE'A list of extra configuration fields is provided in order to overwrite the default fields.
| Name | Explanation | possible values/ examples |
|---|---|---|
| jiskefet_user | sets the name of the remote user to create, default is 'jiskefet' |
|
| remote_privileged_user | set the remote privileged user to use, default is 'root' |
|
| deploy_environment | sets the deployment environment of PM2 | value: 'dev', 'staging' or 'prod' |
| file_upload_limit | sets the file upload limit for the database and API, default is 5 MB |
number in MB's, e.g. 1, 2, 3, ... |
| application_name | sets the name of the UI (such as the Welcome screen and document title) and API (such as SWAGGER document title), default is 'Jiskefet' |
|
| use_hostname_as_remote_address | boolean to tell ansible to use the hostname, default is set to false. If set to true, ansible will overwrite the value at ansible_remote_address |
value: true or false. Note: if set to true, this variable takes precedence over custom_ansible_remote_address |
| custom_ansible_remote_address | field to set the url of the remote, default value is the result of ansible command ansible_default_ipv4.address and it will overwrite the value at ansible_remote_address |
|
| ansible_remote_address | this field is used by ansible to deploy to the remotes. The value of this fields is set by either the variable custom_ansible_remote_address or use_hostname_as_remote_address |
Note: Do not assign anything to this variable, since it will be overwritten. |
| mysql_root_password | set the password of the root account when mysql is getting installed. If this variable is not present in the ansible.config.yml, ansible will generate a passwordfile at /tmp/passwordfile |
|
| remote_repository_url | object that contains the two repository URL's | |
| ∟ JISKEFET_API | git URL for the jiskefet API repository | |
| ∟ JISKEFET_UI | git URL for the jiskefet UI repository | |
| repository_branch | object that contains the branches that git should pull | |
| ∟ JISKEFET_API | a specific branch to pull for JISKEFET_API project, default is set to 'master' |
e.g. 'develop' |
| ∟ JISKEFET_UI | a specific branch to pull for the JISKEFET_UI project, default is set to 'master' |
e.g. 'develop' |
| jiskefet_api_general_settings | object that contains all the general settings | |
| ∟ USE_API_BASE_PATH | adds '/api' to the API url, default is set to 'true' |
value: 'true' or 'false' |
| ∟ PORT | set port number of the jiskefet API project, default port is '3000' |
value: number between 1 - 65535 |
| ∟ TYPEORM_CONNECTION | set the connection type of TYPEORM, currently only 'mysql' is supported |
please see the official docs |
| ∟ TYPEORM_PORT | set the database port, default is set to '3306' |
value: number between 1 - 65535 |
| ∟ TYPEORM_SYNCHRONIZE | set if the database should synchronize with the models in the 'src/entities' folder |
value: 'true' or 'false' |
| ∟ TYPEORM_LOGGING | enables logging of all queries and errors, default is set to 'false' |
value: 'true' or 'false' |
| ∟ JWT_EXPIRE_TIME | sets the expire time of the user's session, default is set to '1h' |
e.g. '8h' |
| ∟ SUB_SYSTEM_TOKEN_EXPIRES_IN | sets the expire time of the subsystem tokens, default is set to '365 days' |
e.g. '30 days' |
| ∟ USE_INFO_LOGGER | specify whether the application should use InfoLogger, default is set to 'false' |
value: 'true' or 'false' |
| jiskefet_api_optional_settings | object that contains the optional settings of the jiskefet API project | |
| ∟ TEST_DB_CONNECTION | set the connection type of TYPEORM, currently only 'mysql' is supported |
please see the official docs |
| ∟ TEST_DB_DATABASE | set the test database name | if left empty/undefined, it will prefix the 'TYPEORM_DATABASE' value with 'test_' |
| ∟ TEST_DB_PORT | set the database port, default is set to '3306' |
value: number between 1 - 65535 |
| ∟ TEST_DB_SYNCHRONIZE | set if the database should synchronize with the models in the 'src/entities' folder |
value: 'true' or 'false' |
| ∟ TEST_DB_LOGGING | enables logging of all queries and errors, default is set to 'false' |
value: 'true' or 'false' |