README.md 3.07 KB
Newer Older
1
Read Me
2
3
4
5
================

1. Informations diverses 

6
Ces rôles Ansible devraient vous permettre d'installer, depuis un noeud de déploiement, sur une ou deux machines CentOS 7.x x86_64, la dernière version disponible d'iRODS ainsi que PostgreSQL 9.6 pour la base "ICAT". Les firewalls doivent être arrêtés avant de lancer le déploiement.
7

8
9
10
2. Installation d'Ansible

```bash
viscapi's avatar
viscapi committed
11
12
13
yum install python2-pip # en tant que root 
pip install ansible --user # installation initiale
pip install -U ansible --user # mise à jour
14
15
16
```

3. Dépôt Gitlab 
17
18
19
20
21
22

Ce dépôt Gitlab comprend deux rôles Ansible:

- iRODS
- postgresql

23
24
25
26
27
28
29
4. Récupération des rôles

```bash
$ git clone https://dci-gitlab.cines.fr/poc_irods/poc-irods.git ansible
```

5. Organisation du répertoire de travail sur la machine de déploiement
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

```
ansible
  |
  |_ irods.yml
  |_ irods_hosts
  |
  |_ group_vars
  |       |
  |       |_ iRODS
  |       |    |
  |       |    |_ main.yml
  |       |
  |       |_ all
  |           |
  |           |_ var_pass.yml
  |
  |_ roles
       |
       |_ iRODS
       |
       |_ postgresql
```

54
6. Préparation du fichier de playbook irods.yml
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82

```
---

- name: Installation serveur PostgreSQL
  hosts: irods_database
  roles:
    - postgresql
  become: true
  become_user: root
  become_method: sudo
  vars_files:
  - "group_vars/iRODS/main.yml"

- name: Installation serveur iRODS
  hosts: irods_server
  roles:
    - iRODS
  become: true
  become_user: root
  become_method: sudo
  vars_fles:
  - "group_vars/iRODS/main.yml"

...

```

83
7. Préparation du fichier d'inventaire irods_hosts
84

85
86
iRODS et PostgreSQL peuvent aussi être installés sur la même machine.

87
88
89
90
91
92
93
94
```
[irods_server]
myhost1.mydomain.tld

[irods_data]
myhost2.mydomain.tld

```
95

96
8. Préparation du fichier de variables cryptées
97

98
99
Les valeurs ci-dessous sont données en tant qu'exemples, vous pouvez bien entendu les changer.

100
101
```bash
cd ansible/group_vars/iRODS/
viscapi's avatar
viscapi committed
102
ansible-vault create --vault-id irods@prompt main.yml
103
104
```
```
105
irods_unix_user_name: irods
106
irods_unix_user_id: 
107
irods_unix_group_name: irods
108
109
irods_unix_group_id:
irods_unix_password:
110
selinux_mode: enforcing
111
admin_password:
112
113
114
115
116
irods_zone: TESTZONE
default_resource: demoResc
negotiation_key: "A 32-byte encryption key shared by the zone for use in the advanced negotiation handshake at the beginning of an iRODS client connection"
database_hostname: myhost2.mydomain.tld
database_name: ICAT
117
database_password:
118
119
120
121
122
database_user: irods
server_control_plane_key: "The encryption key required for communicating with the iRODS grid control plane. Must be 32 bytes long. This must be the same across all iRODS servers in a Zone."
zone_key: "The shared secret used for authentication and identification of server-to-server communication - this can be a string of any length, excluding the use of hyphens, for historical purposes. This must be the same across all iRODS servers in a Zone."
path_to_icat: /data/icat
irods_server: l'ip de myhost1.mydomain.tld
123
124
```

125
9. Lancement du playbook
126
127
128
129

```bash
ansible-playbook --key-file=/path/to/your/.ssh/id_rsa -i irods_hosts irods.yml --ask-vault-pass --vault-id irods@prompt
```