déploiement pour l’hébergement d’architecture cliente et mise en place du selfservice one

16
Hébergement Cloud - TechDay Jimmy Goffaux @amto_res

Upload: opennebula-project

Post on 06-Aug-2015

266 views

Category:

Documents


0 download

TRANSCRIPT

Hébergement Cloud - TechDay

Jimmy Goffaux @amto_res

Ippon Technologies © 2015

● Besoin● Chiffres● Stockage : Ceph et local● ACL et Permissions● Hooks DNS● Contextualisation● Conclusion

Sommaire

Ippon Technologies © 2015

Besoin

Besoin interne :- Industrialisation des déploiements de VMs- Industrialisation des services (avec implémentation Puppet en parallèle)- Avec solution rapidement opérationnelle

Besoin clients :- Self-service- Centralisation

Solution :- Short-list : OVirt, OpenNebula, OpenStack (+ fail récent sur CloudStack)- Choix OpenNebula pour :

- Couverture des besoins - Simplicité de déploiement- Documentation

Durée du projet : 4 mois

Ippon Technologies © 2015

Chiffres● Noeuds KVM● Utilisation OpenVSwitch

● Stockage:32 To SATA Ceph (RadosGW et RBD)

48 To Flash SSD

● RAM: 2To DDR4● 384 threads Xeon

Ippon Technologies © 2015

Stockage

Ceph :

- Images- VMs

● Configuration Core (onedatastore)

● Configuration Node (virsh+librbd)

CEPH_HOST="10.4.0.1:6789 10.4.0.3:6789 10.4.0.4:6789"CEPH_SECRET="xxxxxxxxxxxxx"CEPH_USER="opennebula"

<secret ephemeral='no' private='no'> <uuid>aaaaaaaaa-00000-sdds-fdsfds-ddsqsdq</uuid> <usage type='ceph'>

<name>client.opennebula secret</name> </usage></secret>

Local :

- Images- VMs- Contextualisation

● Configuration Core (onedatastore)

DATASTORE TEMPLATE BASE_PATH="/var/lib/one//datastores/"SHARED="NO"TM_MAD="ssh"TYPE="SYSTEM_DS"

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Image UbuntuOwner : um-Group : um-Other : u--

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Image UbuntuOwner : um-Group : um-Other : u--

Modèle : Ubuntu SelfServiceOwner : um-Group : um-Other : u--

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Image UbuntuOwner : um-Group : um-Other : u--

Modèle : Ubuntu SelfServiceOwner : um-Group : um-Other : u--

Modèle : Ubuntu IHOwner : um-Group : um-Other : ---

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Image UbuntuOwner : um-Group : um-Other : u--

Modèle : Ubuntu SelfServiceOwner : um-Group : um-Other : u--

Modèle : Ubuntu IHOwner : um-Group : um-Other : ---

ID USER RES_VHNIUTGDCOZ RID OPE_UMAC ZONE96 @104 V----------- * ---c #0

Ippon Technologies © 2015

ACL, Permissions

VDC Client A

Client SelfService

Groupe “Client”

Serveur de Production

Groupe “Client Prod”

Image UbuntuOwner : um-Group : um-Other : u--

Modèle : Ubuntu SelfServiceOwner : um-Group : um-Other : u--

Modèle : Ubuntu IHOwner : um-Group : um-Other : ---

115 @106 V------------- * ---c #0116 @106 ----T--------- * u--- #0

ID USER RES_VHNIUTGDCOZ RID OPE_UMAC ZONE96 @104 V---------- * ---c #0

Ippon Technologies © 2015

Hooks DNS

[....]HOSTNAME=`onevm show $1 |grep ^HOSTNAME | awk -F'"' '{print $2}'`

[....]

cat<<EOF | /usr/bin/nsupdate -k ~/.key_dns/Kone.ippon-hosting.net.+157+18282.private -vserver ns1.one.ippon-hosting.netzone one.ippon-hosting.netupdate delete $HOSTNAME-$1.one.ippon-hosting.net Aupdate add $HOSTNAME-$1.one.ippon-hosting.net 60 A $ipshowsend

cat<<EOF | /usr/bin/nsupdate -k ~/.key_dns/Kone.ippon-hosting.net.+157+18282.private -vserver ns1.one.ippon-hosting.netzone one.ippon-hosting.netupdate delete one-$1.one.ippon-hosting.net Aupdate add one-$1.one.ippon-hosting.net 60 A $ipshowsendEOF[.....]

/etc/one/oned.conf

VM_HOOK = [ name = "IPPONHOSTING_HOOK", on = "CREATE", command = "ih_dns_hooks_sh", arguments = "$ID" ]

/var/lib/one/remotes/hooks/ih_dns_hooks_sh

Ippon Technologies © 2015

Contextualisation● Debian : opennebula-context- Montage d’une ISO dans /mnt - Script init.sh

● Ubuntu : cloud-init

distrib=`cat /etc/issue |awk '{print $3}'`if [ $distrib -eq '7' ] ; then name_distrib="wheezy"elif [ $distrib -eq '8' ] ; then name_distrib="jessie"ficd /tmpwget https://apt.puppetlabs.com/puppetlabs-release-$name_distrib.debdpkg -i puppetlabs-release-$name_distrib.debapt-get updateapt-get install -y puppet[...........]

#cloud-configchpasswd: { expire: False }password: testfqdn: $HOSTNAME-$VMID.one.ippon-hosting.netruncmd:- [ usermod, -l, atomes, ubuntu ]- [ groupmod, -n, atomes, ubuntu ]- [ usermod, -d, /home/atomes, -m, atomes ]- [ perl, -pi, -e, 's/ubuntu/atomes/g;', /etc/sudoers.d/90-cloudimg-ubuntu ]apt_update: trueapt_sources:- source: 'deb http://apt.puppetlabs.com precise dependencies'- source: 'deb http://apt.puppetlabs.com precise main'[...............]

Ippon Technologies © 2015

Roadmap Cloud 2016

Multi DC

Virtualisation FW

PRA as a Service

Ippon Technologies © 2015

Conclusion

+● Interface intuitive pour les non-experts● Documentation● Système de VDC :

○ permissions et héritages○ quotas et sous-quotas

● Production dans un contexte multi tenants en 4 mois● Sécurité (Antispoofing)● Facilité d’Upgrade● 3 minutes pour créer une VM de production

-● Identification d’un disque dans une VM (UUID)● pas de facturation à la consommation● Pas d’isolation PVLAN (Openvswitch)

Coming next:Migration de tous nos serveurs des infras legacy !KVM, Xen Server, … et bare metal

Many to … just !

blog.ippon.frippon.fr ippon-hosting.com

@ippontech [email protected]