README.md 4.06 KB
Newer Older
1
# ARGO via Ansible
2

3
4
5
6
## WebAPI deployment

Contains Ansible playbook for the deployment of the ARGO datastore and API service. The play is split into four (4) roles:
- repos (includes tasks for the installation of the required repository definitions)
7
8
9
10
- has_certificate (task for uploading the certificate file onto the host under the appropriate path)
- mongodb (installation and configuration of mongodb datastore)
- webapi (installation and bootstrap of ARGO api service)

11
### Things to do before deployment
12

Paschalis Korosoglou's avatar
Paschalis Korosoglou committed
13
- Obtain a key/certificate pair from a trusted CA and after place them both under roles/has_certificate/files with names `{{inventory_hostname}}.key` and `{{inventory_hostname}}.pem` respectively. As `{{inventory_hostname}}` use the exact name used within the `inventory` file. 
14
- Edit inventory and replace `webapi.node` with the hostname that you intend to deploy the API onto. 
15

16
### Prerequisites
17

18
- Deploy against CentOS 6.x node
19
- Make sure `libselinux-python` is installed on the target node
20
21
22
- Ansible version used is `1.7.2`

### How to deploy
23
24
25

```bash
$ ansible-playbook -v webapi.yml
26
27
```

28
29
30
31
32
33
34
35
36
37
38

## Web UI deployment

Contains Ansible playbook for the deployment of the ARGO Web UI service. The play is split into four (4) roles:
- firewall (configures iptables firewall rules)
- repos (includes tasks for the installation of the required repository definitions)
- has_certificate (task for uploading the certificate file onto the host under the appropriate path)
- webui (installation and bootstrap of ARGO Web UI service)

### Things to do before deployment

Paschalis Korosoglou's avatar
Paschalis Korosoglou committed
39
- Obtain a key/certificate pair from a trusted CA and after place them both under roles/has_certificate/files with names `{{inventory_hostname}}.key` and `{{inventory_hostname}}.pem` respectively. As `{{inventory_hostname}}` use the exact name used within the `inventory` file. 
Paschalis Korosoglou's avatar
Paschalis Korosoglou committed
40
- Edit inventory and replace `webui.node` with the hostname that you intend to deploy the Web UI onto. 
41
42
- Edit `roles/webui/vars/main.yml` file and change the values of the `certificate_password` and `keystore_password` variables to a stronger value.

43
44
- Note that by default the EGI based web UI will be deployed on your target node. To change this behaviour use the `argo_web` and `branch_name` variables within the `roles/webui/vars/main.yml` file to point to another upstream lavoisier repository. 

45
46
47
48
49
50
51
52
53
54
55
### Prerequisites

- Deploy against CentOS 7.x node
- Ansible version used is `1.9.2`

### How to deploy

```bash
$ ansible-playbook -v webui.yml
```

56
57
58
59
60
61
62
63
64
65
66
67
## Full standalone deployment

Contains Ansible playbook for the deployment of all ARGO components. The play is split into six (6) roles:
- repos (includes tasks for the installation of the required repository definitions)
- ca_bundle (includes a task for the installation of the egi-ca-policy-core bundle)
- has_certificate (task for uploading the certificate file onto the host under the appropriate path)
- consumer (includes tasks for the installation of the ARGO consumer and feed components)
- mongodb (installation and configuration of mongodb datastore)
- webapi (installation and bootstrap of ARGO api service)

### Things to do before deployment

Paschalis Korosoglou's avatar
Paschalis Korosoglou committed
68
- Obtain a key/certificate pair from a trusted CA and after place them both under roles/has_certificate/files with names `{{inventory_hostname}}.key` and `{{inventory_hostname}}.pem` respectively. As `{{inventory_hostname}}` use the exact name used within the `inventory` file. 
69
70
71
72
73
- Edit inventory and replace `standalone.node` with the hostname that you intend to deploy the complete ARGO stack onto. 

### Prerequisites

- Deploy against CentOS 6.x node
74
- Make sure `libselinux-python` is installed on the target node
75
76
77
78
79
80
81
- Ansible version used is `1.7.2`

### How to deploy

```bash
$ ansible-playbook -v standalone.yml
```
82
83
84
85
86


## Monitoring your services

In case you are using Nagios or Icinga for health monitoring purposes a minimal `is_monitored` role is included in the repo. The puspose of this role is to install and configure the nrpe service on your target machines. Modify the remote host variable within the `roles/is_monitored/defaults/main.yml` file and include it in your playbooks.