test
It is important to know and to understand the architecture within have been build this client.
The schema bellow is a good summary :

Now that the user have successfully created, you will need to create a "client". This entity will determine the owner of each created services. This is required ! (The services are not associated to a user, but to a specific client)
The creation process is quite simple :
ludovic@ZiSH:# help client
client <client_name> - Enter/create a client configuration
The "client" command allows you to create a client, but also to log in an previous created client, in order to modify it.
ludovic@ZiSH:# client projet_1 Client projet_1 created Client:projet_1#
In the case where you have several clients, the "show client" command will give you a complete list of them :
ludovic@ZiSH:# show client projet_1 projet_2 projet_3
So, it becomes easy to log in one of these clients...
ludovic@ZiSH:# client projet_2 Client:projet_2#
but also to delete one :
ludovic@ZiSH:# no client projet_3 ludovic@ZiSH:# show client projet_1 projet_2
Nota : this step is indispensable to share ressources between users)
In order to share rights on your client services, you will have to invite a user to "join" your own client.
Let's take a look at the process :
Client:projet_1# invitation_key Invitation key: 2d5178ac11ad1530d978574fcc548a9b valid until 2009-03-19 17:05:15
seb@ZiSH:# acknowledge 2d5178ac11ad1530d978574fcc548a9b Invitation to client projet_1 accepted
ZiSH:# client projet_1 Client:projet_1# show Client: projet_1 Address: None Country: None Vsites: sous_projet_1 Roles: owner Users: seb
This is the first and essential step in order to use the ZiSh client. Any actions executed in a "non connected" mode will generate an error.
For instance:
ZiSH:# client oasis You're not in connected state.
You must begin by create an user.
ZiSH:# help user
user <username> <publicname> - Create/Use a user access key
ZiSH:# user ludovic Ludovic Cartier
Creating new user ludovic
Generating key pair
Passphrase: ********
Passphrase (again): ********
Saving private key
Generating CSR
Saving certificate
Enter PEM pass phrase: ********
Ready to use
During the creation process, informations will be requested :
In this example : ludovic is the username, and "Ludovic Cartier" is the public name.
The authentification method with the platform is based on a private key, which is assigned to every user, and signed by the platform's certification authority (CA).
This key's generation requires a "passphrase". After the signature of the key by the CA, your passphrase will be asked again to log yourself.
The ZiSH client will write on your local hard drive both SSL certificate and private key :
~/: cat .zinn/users/certs/ludovic -----BEGIN CERTIFICATE----- MIICdDCCAVygAwIBAgIBEjANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCRlIx DTALBgNVBAgTBFBBQ0ExEjAQBgNVBAcTCU1hcnNlaWxsZTENMAsGA1UEChMESWVs bzETMBEGA1UECxMKU2lublVzZXJDQTEZMBcGA1UEAxMQemQuc2lubi5pZWxvLm5l dDEfMB0GCSqGSIb3DQEJARYQY2FAc2lubi5pZWxvLm5ldDAiGA8yMDA5MDMxNjEw NTUwMloYDzIwMTAwMzE2MTA1NTAyWjASMRAwDgYDVQQDEwdMdWRvdmljMFwwDQYJ KoZIhvcNAQEBBQADSwAwSAJBAOk1D1xRFyKOj2E5lOP5jvIzJdzAPamByKKUgXtW ggbtsBa3f0ndvlTMNaa6SvtkowZ6dVEGPRcJkX3Czdfsj5ECAwEAAaMaMBgwCQYD VR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQEFBQADggEBAH4fy0tZ9db7 Vp/zqu+DPcf0uvBXR9+Cho2zCpTdxA+J+BB9qhBy5ylUl7To6l73dbevnRRqgbZj sGAeypSmGAknNnO/VmKBp7ml6jRQGg4Z88eWcUgZYfI+9MoD1LoQr2A5a24VK6lt 2mBzIbKLz2XMScNZnC/eevDp2JPekDquI6u4fx4FKhQ9Y4u5KU0lixkIH3Z+2ZX9 bDuyIz2zzmWV4UUwT1Kg82bQcfCkYDRDRetRdDC6R7vW80XNh1S+li4LXNQQ/8zy gTo/WqsNu4HlTnE+as1HT/dwVsTZ2IJyJ3Z9ea8iPJbTInwNGgjRD5p1wwNLcI0P sBw4zdFolFs= -----END CERTIFICATE-----
~/: cat .zinn/users/keys/ludovic -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: BF-CBC,EC67873D75228457 QCrJby/kn5oUCgbzPFqZUE7Z010kCgZxnA6C2BNwP5CzYy3j6h9zYevHZHqvaCMa JBUqD+mVXkr68G1ReM7hilPGPFFgwTo1Pu0lDw68EENq6LkO9dSYTGXXQDGYnSxH N6RCgUk3893zgOfnVpk2DDL5M7wLLh41fsI9z+KtlLidpcKIaXss4REfM80Kl9ch 6re/mz7WOuQkIdWk8GuWaSq9oAoYB0Av983ucyoZIOldMJABcpqLjbXxD4EjiSpa Z1V3/efReQSZfQwlJ3TcT6l84oIs5cKSh8DuvmI8TjZsKKETzbfJfv8CElWp/Odg jcPta4R4gcUKPwisx3wBYMCMCxV/lPnyvlBVTtk0ifKbJwRl27woDVkNvBBszKga DXiGIgdt1/Jze5nWRzWwHsjcP+jdWojceP2dE/kcdAU= -----END RSA PRIVATE KEY-----
Now, the user is created, the ZiSH client connect the user automatically and you can access to the entire platform's fonctionnalities.
To log in, nothing easier, just select the local username in the prompt through the "user" command :
~/: ./zish zish 0.9beta Copyright 2009 IELO Lost-Oasis This is free software with ABSOLUTELY NO WARRANTY. For help type `help'. ZiSH:# user ludovic Enter PEM pass phrase: ******** Ready to use ludovic@ZiSH:#
Your passphrase will be asked to confirm your identity and the association with your key.
Nota: In the connected mode, meaning when you have log yourself in, your username is indicated in the ZiSH prompt.
Now that the client have been created, it is necessary to create a vsite in order to use the services.
For the records, a vsite (meaning a "virtual site") is a virtual datacenter, which includes the services (virtual machine, stockage backends, etc...)
To create a vsite :
ludovic@ZiSH:# help vsite
vsite <vsite_name> [<sitegroup_name> <client_name>] - Enter vsite configuration commands.
ludovic@ZiSH:# vsite sous_projet_1 marseille projet_1
Vsite sous_projet_1 created
Let's take a look of the available option when creating a vsite.
Nota : the groups actually available are : Marseille, Marseille-Paris (primary site in Marseille with full redundancy of the services in Paris)
In our example, we have create a vsite named "sous_projet_1", on Marseille's site, et attached to the "projet_1" client.
It is possible to create as many vsite as you want.
In order to know the entire list of your vsite, you simply have to execute the "show vsite" command through your ZiSH client :
ludovic@ZiSH:# show vsite sous_projet_1 sous_projet_2
To manage one of your vsite :
ludovic@ZiSH:# vsite sous_projet_1 Vsite:sous_projet_1#
To delete one of your vsite :
ludovic@ZiSH:# no vsite sous_projet_2 ludovic@ZiSH:# show vsite sous_projet_1
To display informations about the current vsite (attached client, sitegroup, services, etc...) :
ludovic@ZiSH:# vsite sous_projet_1 Vsite:sous_projet_1# show Client: projet_1 SiteGroup: marseille Services:
Now that the vsite have been create, we can access to the create and manage services part.
Let's start by execute the "help" command in order to list the available services :
Vsite:sous_projet_1# help Documented commands (type help <topic>): ======================================== boot help ipaddress no shutdown vlan exit interface machine show storage
Let's take a detail look on each services, and how to create them :
Vsite:sous_projet_1# help machine
machine <machine_name> - Enter machine configuration level.
To create a machine :
Vsite:sous_projet_1# machine vm1 Machine vm1 created
As usual, the "show" command will gives us all the necessary details :
Machine:sous_projet_1.vm1# show Machine vm1 is None Pending: stalled (None) CPU: 1 x86-64bits Memory: 1024 VNC Desactivated keymap is en-us, password is None, bound on undef:undef No interface attached No storage attached Member of vsite sous_projet_1
Vsite:sous_projet_1# help storage
storage <storage_name> (<size> | (clone|cloneconfig|clonedata) <storagesource>) - Add/Clone a storage.
To a create storage:
Vsite:sous_projet_1# storage hdd_vm1 20 Storage hdd_vm1 created
Vsite:sous_projet_1# help interface
interface <interface_name> - Add/Configure a network interface.
To create a network interface :
Vsite:sous_projet_1# interface eth0_vm1 Interface eth0_vm1 created
Interface:sous_projet_1.eth0_vm1# show Interface eth0_vm1 MAC de:ad:01:00:00:0e model virtio in VLAN 2 (ielo.mars.vlan.default) No IP address In: 0 bytes, 0 packets Out: 0 bytes, 0 packets Not attached to any machine
Now that we have successfully created a network interface, we can make a request for a public IP address.
Vsite:sous_projet_1# help ipaddress
ipaddress <ipaddress_name> (ipv4|ipv6) [<reverse>] - Request an ipaddress assignment (IPv4 or IPv6)
To request the public IP :
ludovic@Vsite:sous_projet_1# ipaddress ip_vm1_eth0 ipv4 fakeip.test.com Ipaddress successfly allocated with label ip_vm1_eth0
We now have access to this IP address informations :
ludovic@Vsite:sous_projet_1# show ipaddress ip_vm1_eth0
IpAddress ip_vm1_eth0 : 85.118.58.5/24
Reverse DNS : FAKEIP.TEST.COM.
Address : 85.118.58.5
Netmask : 255.255.255.0
Broadcast : 85.118.58.255
Gateway : 85.118.58.254
Nameserver : 85.118.58.253
Not attached to any interface
As indicated bellow, this IP is not attached to any network interface. Here is how to do it :
ludovic@Interface:sous_projet_1.vm1_eth0# ipaddress ip_vm1_eth0
By executing the "show" command again, it will indicates us that this IP address have been successfully attach to the "vm1_eth0" interface.
ludovic@Vsite:sous_projet_1# show ipaddress ip_vm1_eth0
IpAddress ip_vm1_eth0 : 85.118.58.5/24
Reverse DNS : FAKEIP.TEST.COM.
Address : 85.118.58.5
Netmask : 255.255.255.0
Broadcast : 85.118.58.255
Gateway : 85.118.58.254
Nameserver : 85.118.58.253
Attached to Interface vm1_eth0 macAddr de:ad:01:00:00:87
To create a vlan :
ludovic@Vsite:sous_projet_1# vlan vlan_prod VLAN vlan_prod created ludovic@Vlan:sous_projet_1.vlan_prod# show VLAN 18 (vlan_prod) No member interface ludovic@Vlan:sous_projet_1.vlan_prod# help Documented commands (type help <topic>): ======================================== exit help interface no show
It is also possible to attach a particular network interface to an existing vlan :
ludovic@Vlan:sous_projet_1.vlan_prod# interface vm1_eth0
ludovic@Vlan:sous_projet_1.vlan_prod# show
VLAN 18 (vlan_prod)
Member interface(s):
vm1_eth0 at de:ad:01:00:00:87
ludovic@Vsite:sous_projet_1# machine vm1 Machine vm1 created ludovic@Machine:sous_projet_1.vm1#
ludovic@Machine:sous_projet_1.vm1# help Documented commands (type help <topic>): ======================================== boot exit interface no shutdown vcpu cputype help memory reboot storage vnc ludovic@Machine:sous_projet_1.vm1# show Machine vm1 is None Pending: stalled (None) CPU: 1 x86-64bits Memory: 1024 VNC Desactivated keymap is en-us, password is None, bound on undef:undef No interface attached No storage attached Member of vsite sous_projet_1
The storage drive must be created in the vsite part :
ludovic@Vsite:sous_projet_1# storage vm1_sda 10 Storage vm1_sda created.
We can next attach it to a virtual machine :
ludovic@Machine:sous_projet_1.vm1# help storage
storage <storage_name> [opt]...
opt := ( readonly
| bootable
| bus (virtio|ide|scsi)
| priority <priority> )
Add storage_name to this machine. If bootable is specified with
optional priority, mark device as bootable.
ludovic@Machine:sous_projet_1.vm1# storage vm1_sda
This creation also takes place in the vsite part...
ludovic@Vsite:sous_projet_1# interface vm1_eth0 Interface vm1_eth0 created
... et its attachment to the virtual machine :
ludovic@Machine:sous_projet_1.vm1# interface vm1_eth0
It is possible de make several modifications regarding the processor : increasing or decreasing the numbers of CPU attached to a machine, but also to change its type architecture (32/64 bits).
For instance, to attach two CPUs to a virtual machine :
ludovic@Machine:sous_projet_1.vm1# vcpu 2
And if we want to change their architecture :
ludovic@Machine:sous_projet_1.vm1# cputype x86-32bits
Nota : the possible options pour the CPU architecture are x86-32bits and x86-64bits.
To modify the amount of memory on your machine :
ludovic@Machine:sous_projet_1.vm1# memory 4G
Nota: ZiSH's help shows us that it is possible to affect this value in MegaOctets : "M", or in GigaOctects : "G".
The are here manyier options :
ludovic@Machine:sous_projet_1.vm1# help vnc
vnc keymap <keymap>
vnc password <password>
vnc enable
vnc disable
We can modify the VNC keymap, its password and activate or not the access.
So, if we want to active the VNC access, with an english keymap and a password :
ludovic@Machine:sous_projet_1.vm1# vnc keymap en ludovic@Machine:sous_projet_1.vm1# vnc password fake_password ludovic@Machine:sous_projet_1.vm1# vnc enable
Nota : the password must contain at least 8 characters.
Nota : the VNC access can only be actived unless the virtual machine is started.
To handle all of the services describe above, three new commands are necessary :
Vsite:sous_projet_1# boot vm1
Vsite:sous_projet_1# shutdown vm1
Vsite:sous_projet_1# no interface eth0_vm1
test
It is possible, for one client, to create roles and to affect rights to each one of them.
When creating of client, a default owner role is affected to it. The user who have created the client will automatically be added to this owner role.
For example :
ludovic@ZiSH:# show client projet_1 Client: projet_1 Address: None Country: None Vsites: sous_projet_1 Roles: owner Users: None
To create a new role :
Client:projet_1# role admin Role admin created
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: None Permissions:
Now that we have have seen how to create new roles, we are now look in detail how to manage users, their rights, and the objects which they apply to.
Let's start by create a new role for the "projet_1" client :
Client:projet_1# role admin Role admin created Role:projet_1.admin# help Documented commands (type help <topic>): ======================================== addpermission adduser delpermission deluser exit help public show
The possibilities are :
This functionnality allows to autorise to others platform users de display the informations about this particular role.
Role:projet_1.admin# help public
address yes/no - Set Role public or not
Role:projet_1.admin# public yes Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: yes Users: None Permissions: Vsite: sous_projet_1 -> VSite - manage
Let's imagine that we want to add the user "seb" :
Role:projet_1.admin# adduser ludo_test seb
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: seb Permissions:
As well, to delete this user from the role :
Role:projet_1.admin# deluser seb
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: Permissions:
Role:projet_1.admin# help addpermission
addpermission <vsite> <family> <permission> - Add a permission on a vsite to this role
Let's take a detail look about the options :
To access a service, meaning displaying it, you must have the "list" permission
Other examples of permissions with the "vmachine" object :
Role:projet_1.admin# help delpermission
delpermission <family> <permission> - Remove a permission on a vsite to this role
For example, to remove the "create" permission on the sous_projet_1 vsite :
Role:projet_1.admin# delpermission Vsite create
The ZiGUI program is the client management GUI, which allows to manage the entire architecture and its differents services.
The last development version is the 0.9beta.
The last stable version is the 1.0.0.
You can launch the client through a simple shell, simply by executing the following command:
~/: ./zigui.py
Nota: On unix-based OS, you will need these two packages : python-openssl python-gtk-vnc
Here is a screenshot of the interface :

During the all utilisation of the client, an help option is present, indicating you what are the possible commands and a detail of this commands.
This help will appear as tooltip.
PUT TOOLTIP SCREENSHOT
The ZiSH program is the client management interface, which allows to manage the entire architecture and its differents services.
The last development version is the 0.9beta.
The last stable version is the 1.0.0.
You can launch the client through a simple shell, simply by executing the following command:
~/: ./zish zish 0.9beta Copyright 2009 IELO Lost-Oasis This is free software with ABSOLUTELY NO WARRANTY. For help type `help'. ZiSH:#
During the all utilisation of the client, an help option is present, which can print out the possible commands and a details.
For exemple :
ZiSH:# help Documented commands (type help <topic>): ======================================== acknowledge client exit help no show user vsite
ZiSH:# help client
client <client_name> - Enter/create a client configuration
Nota: it's possible to replace the "help" command by a simple "?", which will have the exact same results.
Before any intensive utilisation, it is important to explain and understand the utilisation schema of the ZiSH client.
Il est important de connaître et comprendre l'architecture sur laquelle a été bâtie le client.
Le schéma explicatif ci-dessous en est un bon résumé :

Maintenant que l'utilisateur a été créé, il faut créer un "client". Cette entité déterminera le propriétaire de chacun des services créés. Il est donc indispensable. (Les services ne sont pas associés à un utilisateur mais bel et bien à un client)
La procédure est très simple, cliquez sur : 

La touche
permet également de créer un client, mais également d'apporter des modifications à ceux créés au préalable.

Connection au client de votre choix en le selectionnant dans la liste déroulante
Pour partager des droits sur les services associés à votre client il vous faudra précédemment inviter un utilisateur à se joindre à votre client.
La procédure est la suivante :
créer une invitation au niveau du client
(attention les clés d'invitation ont une durée de vie limitée)

Il faut ensuite transmettre cette clé à la personne à qui vous souhaitez relier à votre client
La dite personne doit accepter la clé depuis son interface après s'être connecté, en cliquant sur
dans la section User.

C'est la première étape, indispensable, à l'utilisation du client Zigui. Toute action qui sera effectuée en "mode déconnecté" renverra une erreur.
Il faut donc commencer par créer un utilisateur : 

Lors de la création du user, il est demandé de renseigner les informations suivantes :
Dans cet exemple : foo est le nom d'utilisateur, et foo bar le nom public.
La méthode d'authentification à la plate-forme est basée sur une clé privée assignée à chacun des utilisateurs et signé par l'autorité de certification (CA) de la plateforme.
La génération de la clé de l'utilisateur nécessite la saisie d'une "passphrase", après signature de la clée par l'autorité (CA) de la plate-forme la passphrase sera à nouveau demandée afin d'entrer en mode connecté.
Le client Zigui écrira sur votre disque dur local le certificat SSL et la clé privée :

~/: cat .zinn/users/certs/foo -----BEGIN CERTIFICATE----- MIICdDCCAVygAwIBAgIBEjANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCRlIx DTALBgNVBAgTBFBBQ0ExEjAQBgNVBAcTCU1hcnNlaWxsZTENMAsGA1UEChMESWVs bzETMBEGA1UECxMKU2lublVzZXJDQTEZMBcGA1UEAxMQemQuc2lubi5pZWxvLm5l dDEfMB0GCSqGSIb3DQEJARYQY2FAc2lubi5pZWxvLm5ldDAiGA8yMDA5MDMxNjEw NTUwMloYDzIwMTAwMzE2MTA1NTAyWjASMRAwDgYDVQQDEwdMdWRvdmljMFwwDQYJ KoZIhvcNAQEBBQADSwAwSAJBAOk1D1xRFyKOj2E5lOP5jvIzJdzAPamByKKUgXtW ggbtsBa3f0ndvlTMNaa6SvtkowZ6dVEGPRcJkX3Czdfsj5ECAwEAAaMaMBgwCQYD VR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQEFBQADggEBAH4fy0tZ9db7 Vp/zqu+DPcf0uvBXR9+Cho2zCpTdxA+J+BB9qhBy5ylUl7To6l73dbevnRRqgbZj sGAeypSmGAknNnO/VmKBp7ml6jRQGg4Z88eWcUgZYfI+9MoD1LoQr2A5a24VK6lt 2mBzIbKLz2XMScNZnC/eevDp2JPekDquI6u4fx4FKhQ9Y4u5KU0lixkIH3Z+2ZX9 bDuyIz2zzmWV4UUwT1Kg82bQcfCkYDRDRetRdDC6R7vW80XNh1S+li4LXNQQ/8zy gTo/WqsNu4HlTnE+as1HT/dwVsTZ2IJyJ3Z9ea8iPJbTInwNGgjRD5p1wwNLcI0P sBw4zdFolFs= -----END CERTIFICATE-----
~/: cat .zinn/users/keys/foo -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: BF-CBC,EC67873D75228457 QCrJby/kn5oUCgbzPFqZUE7Z010kCgZxnA6C2BNwP5CzYy3j6h9zYevHZHqvaCMa JBUqD+mVXkr68G1ReM7hilPGPFFgwTo1Pu0lDw68EENq6LkO9dSYTGXXQDGYnSxH N6RCgUk3893zgOfnVpk2DDL5M7wLLh41fsI9z+KtlLidpcKIaXss4REfM80Kl9ch 6re/mz7WOuQkIdWk8GuWaSq9oAoYB0Av983ucyoZIOldMJABcpqLjbXxD4EjiSpa Z1V3/efReQSZfQwlJ3TcT6l84oIs5cKSh8DuvmI8TjZsKKETzbfJfv8CElWp/Odg jcPta4R4gcUKPwisx3wBYMCMCxV/lPnyvlBVTtk0ifKbJwRl27woDVkNvBBszKga DXiGIgdt1/Jze5nWRzWwHsjcP+jdWojceP2dE/kcdAU= -----END RSA PRIVATE KEY-----
L'utilisateur à maintenant été créé, et nous sommes déjà en mode connecté, nous pouvons accéder à l'ensemble des fonctionnalités offertes par la plate-forme.
Pour se connecter, rien de plus aisé, sélectionnez un utilisateur dans la liste déroulante a gauche : 

Il est possible, pour un client donné de créer des rôles et d'affecter des droits à chacun d'entre eux.
Lors de la création d'un "client" un rôle dit owner affecté à celui-ci. L'utilisateur créateur du client sera automatiquement ajouté au rôle owner.
Pour créer un nouveau rôle depuis la fenêtre de Management clients : 

Maintenant que nous avons vu comment créer de nouveaux rôles, nous allons maintenant regarder en détail comment gérer les utilisateurs, leurs droits, et à les objets auxquels ils s'appliquent.
Les possibilités sont les suivantes :
Attention! afin de pouvoir visualiser un utilisateur et l'ajouter à un rôle vous devez l'avoir précédemment associé à votre client (Voir Gestion d'un client)
Imaginons que nous voulons ajouter l'utilisateur "bar-publicName" : 

Ajout de la permission "list" des familles "VSite" et "Storage" du vsite "foo-vstie" : 

Examinons les options en détails :
Notez que pour pouvoir accéder à un service, c'est à dire le lister/visualiser vous devez disposer de la permission "list"
Autre exemple de permissions avec l'objet VMachine :
Maintenant que le "client" a été créé, il est nécessaire de créer un "vsite" afin d'y associer des services.
Pour rappel, un "vsite" (que l'on peut traduite en français par site virtuel) correspond à un datacenter virtuel regroupant des services tels que des machines virtuelles, des volumes de stockage, etc ..
Pour créer un "vsite" : 

Attardons nous un peu sur les options à la création du "vsite".
Nota : les groupes disponibles actuellement sont : Marseille, Marseille-Paris (site principal à Marseille avec redondance de l'ensemble des services à Paris)
Il est donc possible de créer autant de "vsite" que vous le désirez.
Pour piloter un de vos "vsites" il suffit de le sélectionner dans la liste déroulante. 
Maintenant que le "vsite " a été créé, nous avons accès à la création et à la gestion de services.
Pour créer une machine, il suffit de vous rendre dans l'onglet "Instance"

Après avoir choisis
, vous allez pouvoir choisir la configuration matériel de votre instance :


Vous avez la possibilité de demander des adresse IP publique. 
- Choix entre les 2 protocoles IP : ipv4 et ipv6
- Choix d'un reverse DNS associé à cette adresse.

h3 . Création Interface : 

- Attacher une IP publique à l'interface selectionnée : 
- Détacher une IP publique : 
Nota : Vous devez avoir procédé à une demande d'adress IP publique au préalable (cf : IPaddress)

Création vlan : 

Il est possible d'affecter (ou inversement) une interface réseau préalablement créé à ce vlan : 

¶
¶
Plusieurs options de clonages sont disponibles :
- clone Data : clone l'ensemble des données présent sur le storage source sur un storage déjà existant
- clone config : clone la configuration matériel du storage
- clone : effectue une copie parfaite du storage source (config & data)
Retour sur l'onglet "Instances" afin d'attacher services créés a une instance :

Vous avez à tous moment le choix de changer la configuration matériel d'une instance : 



Pour l'installation de notre instance, cochons les deux cases : "Private Storage et Public storage" :
Dans la section Private storage :
- Choix du storage créé au préalable
- dans notre cas ne pas cocher Bootable car nous souhaitons booter sur notre image d'installation (public storage)
- Read/write car nous souhaitons pouvoir écrire sur le storage.
- choix du bus
Dans la section Public storage, il nous reste à choisir notre système d'exploitation.

Une fois son status "current" sur "running", nous pouvons activer VNC : 

Le zigui est l'interface de gestion, version client, en mode graphique, permettant de gérer dans son ensemble l'accès aux différents services proposés ainsi que leur administration.
La dernière version stable est la 1.0.0.
Télécharger la dernière version : http://src.ielo.net/projects/list_files/zinn-clients
Avant toute utilisation intensive, il est important de mettre en avant et comprendre le schéma d'utilisation du client ZiSH.
Le ZiSH est l'interface de gestion, version client, en mode texte, permettant de gérer dans son ensemble l'accès aux différents services proposés ainsi que leur administration.
La version actuelle de développement est la 0.9beta.
La dernière version stable est la 1.0.0.
Dans un shell, le ZiSH se lance le plus simplement du monde en exécutant la commande suivante :
~/: ./zish zish 0.9beta Copyright 2009 IELO Lost-Oasis This is free software with ABSOLUTELY NO WARRANTY. For help type `help'. ZiSH:#
Durant toute l'utilisation du client, une option d'aide est présente, vous indiquant d'une part quelles sont les commandes disponibles à ce niveau, ainsi qu'un détail des dites commandes.
Par exemple :
ZiSH:# help Documented commands (type help <topic>): ======================================== acknowledge client exit help no show user vsite
ZiSH:# help client
client <client_name> - Enter/create a client configuration
Nota: il est possible de remplacer la commande "help" par la commande "?", qui aura exactement les mêmes résultats.
Avant toute utilisation intensive, il est important de mettre en avant et comprendre le schéma d'utilisation du client ZiSH.
Il est important de connaître et comprendre l'architecture sur laquelle a été bâtie le client.
Le schéma explicatif ci-dessous en est un bon résumé :

Maintenant que l'utilisateur a été créé, il faut créer un "client". Cette entité déterminera le propriétaire de chacun des services créés. Il est donc indispensable. (Les services ne sont pas associés à un utilisateur mais bel et bien à un client)
La procédure est très simple
ludovic@ZiSH:# help client
client <client_name> - Enter/create a client configuration
La commande client accompagnée du nom du client va créer celui-ci.
ludovic@ZiSH:# client projet_1 Client projet_1 created Client:projet_1#
Dans le cas où un user posséde plusieurs client, la commande "show client" donne la liste complète des clients :
ludovic@ZiSH:# show client projet_1 projet_2 projet_3
Il est très simple de ce connecter à un client :
ludovic@ZiSH:# client projet_2 Client:projet_2#
Egalement pour en supprimer un :
ludovic@ZiSH:# no client projet_3 ludovic@ZiSH:# show client projet_1 projet_2
Pour partager des droits sur les services associés à votre client il vous faudra précédemment inviter un utilisateur à se joindre à votre client.
La procédure est la suivante :
créer une invitation au niveau du client (attention les clés d'invitation ont une durée de vie limitée)
Client:projet_1# invitation_key Invitation key: 2d5178ac11ad1530d978574fcc548a9b valid until 2009-03-19 17:05:15
Il faut ensuite transmettre cette clé à la personne à qui vous souhaitez relier à votre client
La dite personne doit accepter la clé depuis son interface après s'être connecté à l'aide de la commande :
seb@ZiSH:# acknowledge 2d5178ac11ad1530d978574fcc548a9b Invitation to client projet_1 accepted
L'invité apparaît désormais dans la liste des "user" dans votre vsite
ZiSH:# client projet_1 Client:projet_1# show Client: projet_1 Address: None Country: None Vsites: sous_projet_1 Roles: owner Users: seb
C'est la première étape, indispensable, à l'utilisation du client Zigui. Toute action qui sera effectuée en "mode déconnecté" renverra une erreur.
ZiSH:# client oasis You're not in connected state.
Il faut donc commencer par créer un utilisateur.
ZiSH:# client oasis You're not in connected state.
You must begin by create an user.
ZiSH:# help user
user <username> <publicname> - Create/Use a user access key
ZiSH:# user ludovic Ludovic Cartier
Creating new user ludovic
Generating key pair
Passphrase: ********
Passphrase (again): ********
Saving private key
Generating CSR
Saving certificate
Enter PEM pass phrase: ********
Ready to use
Lors de la création du user, il est demandé de renseigner les informations suivantes :
Dans cet exemple : ludovic est le nom d'utilisateur, et "Ludovic Cartier" le nom public.
La méthode d'authentification à la plate-forme est basée sur une clé privée assignée à chacun des utilisateurs et signé par l'autorité de certification (CA) de la plateforme.
La génération de la clé de l'utilisateur nécessite la saisie d'une "passphrase", après signature de la clée par l'autorité (CA) de la plate-forme la passphrase sera à nouveau demandée afin d'entrer en mode connecté.
Le client Zish écrira sur votre disque dur local le certificat SSL et la clé privée :
~/: cat .zinn/users/certs/foo -----BEGIN CERTIFICATE----- MIICdDCCAVygAwIBAgIBEjANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCRlIx DTALBgNVBAgTBFBBQ0ExEjAQBgNVBAcTCU1hcnNlaWxsZTENMAsGA1UEChMESWVs bzETMBEGA1UECxMKU2lublVzZXJDQTEZMBcGA1UEAxMQemQuc2lubi5pZWxvLm5l dDEfMB0GCSqGSIb3DQEJARYQY2FAc2lubi5pZWxvLm5ldDAiGA8yMDA5MDMxNjEw NTUwMloYDzIwMTAwMzE2MTA1NTAyWjASMRAwDgYDVQQDEwdMdWRvdmljMFwwDQYJ KoZIhvcNAQEBBQADSwAwSAJBAOk1D1xRFyKOj2E5lOP5jvIzJdzAPamByKKUgXtW ggbtsBa3f0ndvlTMNaa6SvtkowZ6dVEGPRcJkX3Czdfsj5ECAwEAAaMaMBgwCQYD VR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcNAQEFBQADggEBAH4fy0tZ9db7 Vp/zqu+DPcf0uvBXR9+Cho2zCpTdxA+J+BB9qhBy5ylUl7To6l73dbevnRRqgbZj sGAeypSmGAknNnO/VmKBp7ml6jRQGg4Z88eWcUgZYfI+9MoD1LoQr2A5a24VK6lt 2mBzIbKLz2XMScNZnC/eevDp2JPekDquI6u4fx4FKhQ9Y4u5KU0lixkIH3Z+2ZX9 bDuyIz2zzmWV4UUwT1Kg82bQcfCkYDRDRetRdDC6R7vW80XNh1S+li4LXNQQ/8zy gTo/WqsNu4HlTnE+as1HT/dwVsTZ2IJyJ3Z9ea8iPJbTInwNGgjRD5p1wwNLcI0P sBw4zdFolFs= -----END CERTIFICATE-----
~/: cat .zinn/users/keys/foo -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: BF-CBC,EC67873D75228457 QCrJby/kn5oUCgbzPFqZUE7Z010kCgZxnA6C2BNwP5CzYy3j6h9zYevHZHqvaCMa JBUqD+mVXkr68G1ReM7hilPGPFFgwTo1Pu0lDw68EENq6LkO9dSYTGXXQDGYnSxH N6RCgUk3893zgOfnVpk2DDL5M7wLLh41fsI9z+KtlLidpcKIaXss4REfM80Kl9ch 6re/mz7WOuQkIdWk8GuWaSq9oAoYB0Av983ucyoZIOldMJABcpqLjbXxD4EjiSpa Z1V3/efReQSZfQwlJ3TcT6l84oIs5cKSh8DuvmI8TjZsKKETzbfJfv8CElWp/Odg jcPta4R4gcUKPwisx3wBYMCMCxV/lPnyvlBVTtk0ifKbJwRl27woDVkNvBBszKga DXiGIgdt1/Jze5nWRzWwHsjcP+jdWojceP2dE/kcdAU= -----END RSA PRIVATE KEY-----
L'utilisateur à maintenant été créé, et nous sommes déjà en mode connecté, nous pouvons accéder à l'ensemble des fonctionnalités offertes par la plate-forme.
Pour se connecter, rien de plus aisé, choisissez la commande "user"
~/: zish zish 0.9beta Copyright 2009 IELO Lost-Oasis This is free software with ABSOLUTELY NO WARRANTY. For help type `help'. ZiSH:# user ludovic Enter PEM pass phrase: ******** Ready to use ludovic@ZiSH:#
_Nota: En mode connecté, votre nom d'utilisateur est indiqué dans le prompt du client ZiSH
Il est possible, pour un client donné de créer des rôles et d'affecter des droits à chacun d'entre eux.
Lors de la création d'un "client" un rôle dit owner affecté à celui-ci. L'utilisateur créateur du client sera automatiquement ajouté au rôle owner.
ludovic@ZiSH:# show client projet_1 Client: projet_1 Address: None Country: None Vsites: sous_projet_1 Roles: owner Users: None
Pour créer un nouveau rôle :
Client:projet_1# role admin Role admin created
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: None Permissions:
Maintenant que nous avons vu comment créer de nouveaux rôles, nous allons maintenant regarder en détail comment gérer les utilisateurs, leurs droits, et à les objets auxquels ils s'appliquent.
Client:projet_1# role admin Role admin created Role:projet_1.admin# help Documented commands (type help <topic>): ======================================== addpermission adduser delpermission deluser exit help public show
Les possibilités sont :
Cette fonction autorise les autres utilisateurs de ce role à voir les informations sur celui-ci.
Role:projet_1.admin# help public
address yes/no - Set Role public or not
Role:projet_1.admin# public yes Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: yes Users: None Permissions: Vsite: sous_projet_1 -> VSite - manage
Attention! afin de pouvoir visualiser un utilisateur et l'ajouter à un rôle vous devez l'avoir précédemment associé à votre client (Voir Gestion d'un client)
Imaginons que nous voulons ajouter l'utilisateur "seb" :
Role:projet_1.admin# adduser ludo_test seb
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: seb Permissions:
Suppression d'un utilisateur au role :
Role:projet_1.admin# deluser seb
Role:projet_1.admin# show projet_1 Role: admin Client: projet_1 Public: no Users: Permissions:
Role:projet_1.admin# help addpermission
addpermission <vsite> <family> <permission> - Add a permission on a vsite to this role
Examinons les options en détails :
Notez que pour pouvoir accéder à un service, c'est à dire le lister/visualiser vous devez disposer de la permission "list"
Autre exemple de permissions avec l'objet VMachine :
Role:projet_1.admin# help delpermission
delpermission <family> <permission> - Remove a permission on a vsite to this role
Par exemple, pour supprimer la permission "create" de la famille "vsite" du role "projet_1" :
Role:projet_1.admin# delpermission Vsite create
Maintenant que le "client" a été créé, il est nécessaire de créer un "vsite" afin d'y associer des services.
Pour rappel, un "vsite" (que l'on peut traduite en français par site virtuel) correspond à un datacenter virtuel regroupant des services tels que des machines virtuelles, des volumes de stockage, etc ..
Pour créer un "vsite" :
ludovic@ZiSH:# help vsite
vsite <vsite_name> [<sitegroup_name> <client_name>] - Enter vsite configuration commands.
ludovic@ZiSH:# vsite sous_projet_1 marseille projet_1
Vsite sous_projet_1 created
Attardons nous un peu sur les options à la création du "vsite".
Nota : les groupes disponibles actuellement sont : Marseille, Marseille-Paris (site principal à Marseille avec redondance de l'ensemble des services à Paris)
dans notre exemple, nous avons créé un vsite nommé "sous_projet_1", sur le site physique de Marseille et attaché au client "projet_1"
Il est donc possible de créer autant de "vsite" que vous le désirez.
Pour voir la liste des viste du client avec lequel vous êtes connecté, effectuez la commande show vsite :
ludovic@ZiSH:# show vsite sous_projet_1 sous_projet_2
Pour configurer un de vos vsites :
ludovic@ZiSH:# vsite sous_projet_1 Vsite:sous_projet_1#
Pour supprimer un vsite :
ludovic@ZiSH:# no vsite sous_projet_2 ludovic@ZiSH:# show vsite sous_projet_1
Pour voir les informations sur le vsite courant (clients attachés, sitegroup, services, etc ...) :
ludovic@ZiSH:# vsite sous_projet_1 Vsite:sous_projet_1# show Client: projet_1 SiteGroup: marseille Services:
Maintenant que le "vsite " a été créé, nous avons accès à la création et à la gestion de services.
Vsite:sous_projet_1# help Documented commands (type help <topic>): ======================================== boot help ipaddress no shutdown vlan exit interface machine show storage
Vsite:sous_projet_1# help machine
machine <machine_name> - Enter machine configuration level.
Création instance :
Vsite:sous_projet_1# machine vm1 Machine vm1 created
As usual, the "show" command will gives us all the necessary details :
Une fois l'instance crée, vous "entrez dedans" (Machine:sous_projet_1.vm1#).
Effectuez la commande "show" pour vois les details de votre instance (memoire,vcpu,vnc,...)
Machine:sous_projet_1.vm1# show Machine vm1 is None Pending: stalled (None) CPU: 1 x86-64bits Memory: 1024 VNC Desactivated keymap is en-us, password is None, bound on undef:undef No interface attached No storage attached Member of vsite sous_projet_1
- Nom de l'instance est sont status
- Type de processeur : 64bits ou 32bits
- Nombre de processeurs alloués à l'instance (8 MAX)
- Quantité de Mémoire vive (min : 1024 MO)
- Choix tu type de clavier
- password de connections VNC afin de pouvoir procéder à l'installation de votre système d'exploitation.
- Interfaces et storages attaché.
- vsite auquel appartient l'instance.
Vsite:sous_projet_1# help storage
storage <storage_name> (<size> | (clone|cloneconfig|clonedata) <storagesource>) - Add/Clone a storage.
Creation storage :
Vsite:sous_projet_1# storage hdd_vm1 20 Storage hdd_vm1 created
Vsite:sous_projet_1# help interface
interface <interface_name> - Add/Configure a network interface.
Création interface réseaux :
Vsite:sous_projet_1# interface eth0_vm1 Interface eth0_vm1 created
Interface:sous_projet_1.eth0_vm1# show Interface eth0_vm1 MAC de:ad:01:00:00:0e model virtio in VLAN 2 (ielo.mars.vlan.default) No IP address In: 0 bytes, 0 packets Out: 0 bytes, 0 packets Not attached to any machine
Maintenant que nous avons créer une interface réseaux, nous pouvons faire une demande d'IP Publique.
Vsite:sous_projet_1# help ipaddress
ipaddress <ipaddress_name> (ipv4|ipv6) [<reverse>] - Request an ipaddress assignment (IPv4 or IPv6)
demande d'IP pulique :
ludovic@Vsite:sous_projet_1# ipaddress ip_vm1_eth0 ipv4 fakeip.test.com Ipaddress successfly allocated with label ip_vm1_eth0
Nous avons accès au information de cette IP :
ludovic@Vsite:sous_projet_1# show ipaddress ip_vm1_eth0
IpAddress ip_vm1_eth0 : 85.118.58.5/24
Reverse DNS : FAKEIP.TEST.COM.
Address : 85.118.58.5
Netmask : 255.255.255.0
Broadcast : 85.118.58.255
Gateway : 85.118.58.254
Nameserver : 85.118.58.253
Not attached to any interface
Notre Ip n'est attachée à aucune interface réseaux, voici la commande pour l'attacher à notre interface :
ludovic@Interface:sous_projet_1.vm1_eth0# ipaddress ip_vm1_eth0
en exécutant une seconde fois la commande "show", nous pouvons cette fois remarquer que l'IP est attachée à l'interface réseaux.
ludovic@Vsite:sous_projet_1# show ipaddress ip_vm1_eth0
IpAddress ip_vm1_eth0 : 85.118.58.5/24
Reverse DNS : FAKEIP.TEST.COM.
Address : 85.118.58.5
Netmask : 255.255.255.0
Broadcast : 85.118.58.255
Gateway : 85.118.58.254
Nameserver : 85.118.58.253
Attached to Interface vm1_eth0 macAddr de:ad:01:00:00:87
Création Vlan :
ludovic@Vsite:sous_projet_1# vlan vlan_prod VLAN vlan_prod created ludovic@Vlan:sous_projet_1.vlan_prod# show VLAN 18 (vlan_prod) No member interface ludovic@Vlan:sous_projet_1.vlan_prod# help Documented commands (type help <topic>): ======================================== exit help interface no show
Il est possible d'atacher des interface réseaux à un vlan existant :
ludovic@Vlan:sous_projet_1.vlan_prod# interface vm1_eth0
ludovic@Vlan:sous_projet_1.vlan_prod# show
VLAN 18 (vlan_prod)
Member interface(s):
vm1_eth0 at de:ad:01:00:00:87
ludovic@Vsite:sous_projet_1# machine vm1 Machine vm1 created ludovic@Machine:sous_projet_1.vm1#
ludovic@Machine:sous_projet_1.vm1# help Documented commands (type help <topic>): ======================================== boot exit interface no shutdown vcpu cputype help memory reboot storage vnc ludovic@Machine:sous_projet_1.vm1# show Machine vm1 is None Pending: stalled (None) CPU: 1 x86-64bits Memory: 1024 VNC Desactivated keymap is en-us, password is None, bound on undef:undef No interface attached No storage attached Member of vsite sous_projet_1
ludovic@Vsite:sous_projet_1# storage vm1_sda 10 Storage vm1_sda created.
Nous pouvons désormais l'attacher à notre Instance :
ludovic@Machine:sous_projet_1.vm1# help storage
storage <storage_name> [opt]...
opt := ( readonly
| bootable
| bus (virtio|ide|scsi)
| priority <priority> )
Add storage_name to this machine. If bootable is specified with
optional priority, mark device as bootable.
ludovic@Machine:sous_projet_1.vm1# storage vm1_sda
ludovic@Vsite:sous_projet_1# interface vm1_eth0 Interface vm1_eth0 created
... et attachement à l'instance :
ludovic@Machine:sous_projet_1.vm1# interface vm1_eth0
Il est possible de modifier le type de processeur ou le nombre de CPU attachés à l'instance :
Pour attacher deux CPU's à notre instance :
ludovic@Machine:sous_projet_1.vm1# vcpu 2
Si nous souhaitons changer l'architecture du processeur :
ludovic@Machine:sous_projet_1.vm1# cputype x86-32bits
Nota : Les architectures CPU possibles sont : x86-32bits et x86-64bits.
ludovic@Machine:sous_projet_1.vm1# memory 4G
Nota: "G" Pour GigaOctets et "M" pour MegaOctets
Il y a ici plusieurs options :
ludovic@Machine:sous_projet_1.vm1# help vnc
vnc keymap <keymap>
vnc password <password>
vnc enable
vnc disable
Nous pouvons modifier le keymap VNC, le mot de pass et activer ou non l'accès VNC.
So, if we want to active the VNC access, with an english keymap and a password :
Donc, si nous souhaitons activer l'accès VNC avec le keymap français et le mot de passe "fake_password" :
ludovic@Machine:sous_projet_1.vm1# vnc keymap fr ludovic@Machine:sous_projet_1.vm1# vnc password fake_password ludovic@Machine:sous_projet_1.vm1# vnc enable
Nota : le mot de pass doit contenir moins de 8 caractères.
Nota : L'accès vnc peut être activé que si l'instance est démarrée (current Status : running)
Pour la gestion des services ci-dessus, trois nouvelles commandes sont nécessaires :
Vsite:sous_projet_1# boot vm1
Vsite:sous_projet_1# shutdown vm1
Vsite:sous_projet_1# no interface eth0_vm1
Zinn-Clients Is a Nifty Name for clients : acronym for a set of tools aimed to be used on client side in conjunction with online Zinn services.
Zinn-Clients is one the the 3 components of the NiftyName project.
git clone git://src.ielo.net/git/zinn-clients
Tarballs for releases are available in the Files section.