SlideShare a Scribd company logo
Deploy Mediawiki using Fiware Lab facilities
José Ignacio Carretero Guarde
R&D Engineer at Telefonica I+D. In charge of Spain FIWARE Lab Node
joseignacio.carreteroguarde@telefonica.com
@jicarreterogu
Mediawiki and FIWARE Lab APIs (Openstack)
2
3
What Mediawiki has to do with FIWARE Lab (I)
Nothing?
4
...But it could be good vehicle to show some things about FIWARE
Lab IaaS reference Implementation GE.
What Mediawiki has to do with FIWARE Lab (II)
5
●
Why Wikimedia? – If it has nothing to do with FIWARE.
●
It has a backend Database (Mysql)
●
It has a Frontend Web Server (Apache)
●
I Allows me to show some tools: IaaS GE.
●
I Know how it Works, So I can automate it.
●
Images and files are stored in Apache (…/wiki/images)
●
Data in the database is stored in /var/lib/mysql
Installing an Applicacion: Mediawiki
6
●
https://catalogue.fiware.org/enablers/iaas-ge-fiware-reference-implement
●
“We are using OpenStack Vanilla release for the IaaS GE.”
●
Openstack APIs work:
●
Compute APIs
●
Block Storage APIs
●
Image Service
●
Object Storage
●
There are CLIs writen in Python...
IaaS GE – FIWARE Reference Implementation
7
# Assuming Python 2.7, pip and virtualenv installed
virtualenv osdemo
source osdemo/bin/activate
pip install python-openstackclient
pip install python-swiftclient
How to locally install the CLIs
A First Approach to the Installation Process
8
9
Installing an Applicacion: Mediawiki (I)
10
●
Virtual Machines – Instances
●
Instances are managed by Nova.
●
We need a few things before deploying an instance
●
A Keypair
●
In order to be Able to SSH our instances
●
Security Groups/Rules
●
Because OpenStack acts like a closed Firewall for every
instance.
Create a first VM
11
# Creating the keypair
nova keypair-add summitkp | tee summitkp && chmod 400 summitkp
# Creating the security group and rules
nova secgroup-create openthings opens_some_ports
nova secgroup-add-rule openthings tcp 22 22 0/0
nova secgroup-add-rule openthings tcp 80 80 0/0
nova secgroup-add-rule openthings icmp -1 -1 0/0
# Creating the security group and rules (What I did!):
nova secgroup-create allopen open_everything
nova secgroup-add-rule allopen tcp 1 65535 0/0
nova secgroup-add-rule allopen ucp 1 65535 0/0
nova secgroup-add-rule allopen icmp -1 -1 0/0
Nova: Key Pairs and Security Groups
12
●
Boot our first instance with some parameters
●
(At least) One network ID to allow networking
●
Flavor – The size of the Instance
●
Our Security Group – our firewall configuration.
●
A Keypair – To SSH our instance
●
The base image – I’ll use an Ubuntu in the demos.
●
Assign a floating IP to some of our instances
●
A Floating IP is needed to SSH our instances. We might not be
able to SSH private IPs
●
1 Floating IP is allowed per User.
Create a first VM (ii)
13
# Find the network ID
NETUUID=$(openstack network list | awk '/ node-int-net-01 / {print $2}')
# Boot Virtual Machine
nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 
--key-name summitkp 
--security-groups allopen 
--flavor m1.small mydatabase
# Creating a floating IP:
PUBLIC_EXT_NET=public-ext-net-01
openstack floating ip create $PUBLIC_EXT_NET
# Associate the IP to our instance:
nova list floating ip create $PUBLIC_EXT_NET
openstack floating list
nova floating-ip-associate mydatabase 130.206.112.0
Nova: Boot and add a floating IP
14
# Get console URL
nova get-vnc-console mydatabase novnc
# Creating the security group and rules
nova console-log mydatabase
Nova: Consoles
15
●
Compute is thought to Compute
●
When Instances die, Ephemeral disks die
●
Persistent Disk – Block Storage
●
Cinder manages Persistent Disks
●
The disks, once created can be attached to instances
●
Instances must format (once) and mount the disks before use
●
Persistent disk will survive Instances.
●
A way to Keep data apart from computation.
Cinder: Ephemeral Vs Persistent disks
16
# Create a Persistent disk
openstack volume create --size 1 myvolume
openstack volume list
VOLUMEID=$(openstack volume list | awk '/ myvolume / {print $2}')
# Attaching the volume to the instance
nova volume-attach mydatabase $VOLUMEID
# Or attaching at boot time…
nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 
--key-name summitkp 
--security-groups allopen 
--block-device-mapping vdb=$VOLUMEID
--flavor m1.small mydatabase
Cinder: Persistent Disk Creation
Automate!!!
17
18
●
Increase Productivity
●
Automated processes reduce defects
●
Reduce Human Errors
●
Processes are run effortlessly
●
Processes are more flexible => Changes are easier
●
Increase satisfaction
●
… You can write many other things here
●
… And here.
Automate: Why?
19
Automate: Using GUI (Cloud Portal)
(maybe... )
Too many clicks
(maybe)...
Too error prone
(almost)...
Impossible automation
Easy to use
20
●
Tools to automate
●
Puppet/Chef
●
An Agent is required in the instance
●
Ansible
●
Many features, even some for OpenStack
●
Some OpenStack Tools
●
Heat / Murano
●
Ad Hoc Scripts
●
This time it was my option, so I can show some CLI
commands
Automate: How?
21
Installing an Applicacion: Mediawiki (II)
/var/www/html/wiki/images /var/lib/mysql
apache-vol kmysql-vol
22
●
Create the Persistent Disk (if it doesn’t exists)
●
Boot the VM attaching the Persistent Disk and injecting a Script
●
The Script
●
Formats the Persistent Disk and mounts it (using /etc/fstab)
●
/var/lib/mysql
●
Installs MySQL-Server software
●
Creates Database and user for the Wiki.
One Installation Process: Database
23
●
Create the Persistent Disk (if it doesn’t exists)
●
Boot the VM attaching the Persistent Disk and injecting a Script
●
The Script
●
Formats the Persistent Disk
●
Installs Apache, php5, libs, etc
●
Downloads Wikimedia and untars it /var/www/html
●
Downloads SyntaxHighlight_plugin and untars it.
●
Mounts the disk (/var/www/html/wiki/images)
●
Creates a FloatingIP and associates it to the instance
One Installation Process: Apache
24
# Or attaching at boot time…
nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 
--key-name summitkp 
--security-groups allopen 
--block-device-mapping vdb=$VOLUMEID
--user-data oneScript
--flavor m1.small mydatabase
The new boot command for Nova
25
The Mediawiki Wizard
26
●
Mediawiki installation can’t be automated… but
●
I can automate LocalSettings.php configuration
●
The Script
●
Gets the Public IP of our apache
●
Sets the Logo, Extensions of Documents which can be uploaded
●
Configures SyntaxHighlight extension
●
Uploads LocalSettings.php and logo.jpg
Can’t automate everything... but almost
Some other tools: Images and Object Storage
27
28
●
I can take Snapshots of my instances
●
So I can boot a preconfigured Instance
●
Glance - The image service is used to create Snapshots
●
I’ve taken an Snapshot of my Database Instance
●
The process takes some time...
●
It is a complicated process that involves many subprocesses
Snapshots from instances
29
# Create an Snapshot from an Instance
nova image-create krtmysql krtmysql-snp
# List images
openstack image list
# Delete images
openstack image delete $IMAGE_ID
Image Commands
30
●
It stores static Objects
●
We can retrieve the objects in the future
●
Swift is the reference implementation of FIWARE’s Object
Storage GE
●
https://catalogue.fiware.org/enablers/object-storage-ge-fiware-imple
●
Objects are Stored in containers
●
I’ve uploaded my Preconfigured Mediawiki in a .tgz file to Object
Store
●
Let’s use this in next Mediawiki installations (as a demo)
Object Storage
31
# Create a new Container
swift post summit
# Upload an object to the Container
swift upload summit wiki.tgz
# List Containers, list objects from a container
swift list
swift list summit
# Retrieve an object from a container
swift download summit wiki.tgz
Swift Commands
32
# Retrieve an object from a container… In some scripts.
token=($(openstack token issue | 
awk '/ id / || / project_id / {print $4}'))
TOKEN=${token[0]}
TENANT_ID=${token[1]}
URL=http://130.206.112.3:8080/v1
…
# Use the token, and the tenant.
swift --os-auth-token $TOKEN --os-storage-
url=$URL/AUTH_$TENANT_ID download summit wiki.tgz
Swift Commands (to automate)
https://github.com/jicarretero/SummitMalaga2016
33
Thank you!
http://fiware.org
Follow @FIWARE on Twitter

More Related Content

What's hot

What's hot (20)

nginx + uwsgi emperor + bottle
nginx + uwsgi emperor + bottlenginx + uwsgi emperor + bottle
nginx + uwsgi emperor + bottle
 
2016/12/10: Ourense MakersLab workshop
2016/12/10: Ourense MakersLab workshop2016/12/10: Ourense MakersLab workshop
2016/12/10: Ourense MakersLab workshop
 
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
Puppet and Vagrant in development
Puppet and Vagrant in developmentPuppet and Vagrant in development
Puppet and Vagrant in development
 
PuppetConf 2016: Building Nano Server Images with Puppet and DSC – Michael Sm...
PuppetConf 2016: Building Nano Server Images with Puppet and DSC – Michael Sm...PuppetConf 2016: Building Nano Server Images with Puppet and DSC – Michael Sm...
PuppetConf 2016: Building Nano Server Images with Puppet and DSC – Michael Sm...
 
Cialug August 2021
Cialug August 2021Cialug August 2021
Cialug August 2021
 
Simple webapps with nginx, uwsgi emperor and bottle
Simple webapps with nginx, uwsgi emperor and bottleSimple webapps with nginx, uwsgi emperor and bottle
Simple webapps with nginx, uwsgi emperor and bottle
 
openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016
openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016
openQA hands on with openSUSE Leap 42.1 - openSUSE.Asia Summit ID 2016
 
Configuration Surgery with Augeas
Configuration Surgery with AugeasConfiguration Surgery with Augeas
Configuration Surgery with Augeas
 
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, PuppetPuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
PuppetConf 2016: Puppet 4.x: The Low WAT-tage Edition – Nick Fagerlund, Puppet
 
Booting Weblogic - OOW14
Booting Weblogic - OOW14Booting Weblogic - OOW14
Booting Weblogic - OOW14
 
Docker puppetcamp london 2013
Docker puppetcamp london 2013Docker puppetcamp london 2013
Docker puppetcamp london 2013
 
Coroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in PractiseCoroutines for Kotlin Multiplatform in Practise
Coroutines for Kotlin Multiplatform in Practise
 
Introduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.comIntroduce about Nodejs - duyetdev.com
Introduce about Nodejs - duyetdev.com
 
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
 
Augeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet treeAugeas, swiss knife resources for your puppet tree
Augeas, swiss knife resources for your puppet tree
 
Automate with Ansible basic (2/e, English)
Automate with Ansible basic (2/e, English)Automate with Ansible basic (2/e, English)
Automate with Ansible basic (2/e, English)
 
SCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AISCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AI
 
Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]Vagrant + Docker provider [+Puppet]
Vagrant + Docker provider [+Puppet]
 

Viewers also liked

How is silicon useful to us?
How is silicon useful to us?How is silicon useful to us?
How is silicon useful to us?
Heet29
 

Viewers also liked (20)

La geoinformació a Catalunya, reptes i oportunitats
La geoinformació a Catalunya, reptes i oportunitatsLa geoinformació a Catalunya, reptes i oportunitats
La geoinformació a Catalunya, reptes i oportunitats
 
Digital marketing trends final plymouth Chamber 06.08
Digital marketing trends final plymouth Chamber 06.08Digital marketing trends final plymouth Chamber 06.08
Digital marketing trends final plymouth Chamber 06.08
 
Input devices 2 Easy To understand
Input devices 2  Easy To understand Input devices 2  Easy To understand
Input devices 2 Easy To understand
 
How is silicon useful to us?
How is silicon useful to us?How is silicon useful to us?
How is silicon useful to us?
 
How to record screen activity
How to record screen activityHow to record screen activity
How to record screen activity
 
The future of work 4th June
The future of work 4th JuneThe future of work 4th June
The future of work 4th June
 
Financial statements with and without
Financial statements with and withoutFinancial statements with and without
Financial statements with and without
 
My time capsule
My  time capsuleMy  time capsule
My time capsule
 
Swing !!! y shikhar!!
Swing !!! y shikhar!!Swing !!! y shikhar!!
Swing !!! y shikhar!!
 
Bab 1: Dasar-dasar Internet
Bab 1: Dasar-dasar InternetBab 1: Dasar-dasar Internet
Bab 1: Dasar-dasar Internet
 
Nazarenko Best Urban Start UP
Nazarenko Best Urban Start UPNazarenko Best Urban Start UP
Nazarenko Best Urban Start UP
 
Intro to Data Analytics
Intro to Data AnalyticsIntro to Data Analytics
Intro to Data Analytics
 
Reconstruction of Belle Harbor 3-24-15 presentation
Reconstruction of Belle Harbor  3-24-15 presentationReconstruction of Belle Harbor  3-24-15 presentation
Reconstruction of Belle Harbor 3-24-15 presentation
 
khizar saeed
khizar saeedkhizar saeed
khizar saeed
 
Get up to speed getting the most out of online marketing weston super mare
Get up to speed getting the most out of online marketing weston super mareGet up to speed getting the most out of online marketing weston super mare
Get up to speed getting the most out of online marketing weston super mare
 
Output devices !!!! by shikhar
Output devices !!!! by shikharOutput devices !!!! by shikhar
Output devices !!!! by shikhar
 
Creation for kids
Creation for kidsCreation for kids
Creation for kids
 
Bible Evidences - Fred Williams
Bible Evidences - Fred WilliamsBible Evidences - Fred Williams
Bible Evidences - Fred Williams
 
Pio baroja
Pio barojaPio baroja
Pio baroja
 
Makalahku
MakalahkuMakalahku
Makalahku
 

Similar to Deploy MediaWiki usgin Fiware Lab Facilities

Puppet and CloudStack
Puppet and CloudStackPuppet and CloudStack
Puppet and CloudStack
ke4qqq
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic UsageOpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebula Project
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
ke4qqq
 

Similar to Deploy MediaWiki usgin Fiware Lab Facilities (20)

ApacheCloudStack
ApacheCloudStackApacheCloudStack
ApacheCloudStack
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
 
Puppet and CloudStack
Puppet and CloudStackPuppet and CloudStack
Puppet and CloudStack
 
Puppet and Apache CloudStack
Puppet and Apache CloudStackPuppet and Apache CloudStack
Puppet and Apache CloudStack
 
Infrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStackInfrastructure as code with Puppet and Apache CloudStack
Infrastructure as code with Puppet and Apache CloudStack
 
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic UsageOpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
OpenNebulaConf 2013 - Hands-on Tutorial: 2. Installing and Basic Usage
 
FIWARE Lab Cloud Portal
FIWARE Lab Cloud PortalFIWARE Lab Cloud Portal
FIWARE Lab Cloud Portal
 
OpenNebula 5.4 Hands-on Tutorial
OpenNebula 5.4 Hands-on TutorialOpenNebula 5.4 Hands-on Tutorial
OpenNebula 5.4 Hands-on Tutorial
 
Puppetpreso
PuppetpresoPuppetpreso
Puppetpreso
 
Automating Complex Setups with Puppet
Automating Complex Setups with PuppetAutomating Complex Setups with Puppet
Automating Complex Setups with Puppet
 
Locally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another HypervisorsLocally run a FIWARE Lab Instance In another Hypervisors
Locally run a FIWARE Lab Instance In another Hypervisors
 
Crikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor WorkshopCrikeycon 2019 Velociraptor Workshop
Crikeycon 2019 Velociraptor Workshop
 
Beyond Puppet
Beyond PuppetBeyond Puppet
Beyond Puppet
 
New Jersey Red Hat Users Group Presentation: Provisioning anywhere
New Jersey Red Hat Users Group Presentation: Provisioning anywhereNew Jersey Red Hat Users Group Presentation: Provisioning anywhere
New Jersey Red Hat Users Group Presentation: Provisioning anywhere
 
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
Diving into SWUpdate: adding new platform support in 30minutes with Yocto/OE !
 
The State of the Veil Framework
The State of the Veil FrameworkThe State of the Veil Framework
The State of the Veil Framework
 
Using Puppet in Small Infrastructures
Using Puppet in Small InfrastructuresUsing Puppet in Small Infrastructures
Using Puppet in Small Infrastructures
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
 
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabHow to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
 
Devops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShiftDevops with Python by Yaniv Cohen DevopShift
Devops with Python by Yaniv Cohen DevopShift
 

Recently uploaded

Recently uploaded (20)

Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 

Deploy MediaWiki usgin Fiware Lab Facilities

  • 1. Deploy Mediawiki using Fiware Lab facilities José Ignacio Carretero Guarde R&D Engineer at Telefonica I+D. In charge of Spain FIWARE Lab Node joseignacio.carreteroguarde@telefonica.com @jicarreterogu
  • 2. Mediawiki and FIWARE Lab APIs (Openstack) 2
  • 3. 3 What Mediawiki has to do with FIWARE Lab (I) Nothing?
  • 4. 4 ...But it could be good vehicle to show some things about FIWARE Lab IaaS reference Implementation GE. What Mediawiki has to do with FIWARE Lab (II)
  • 5. 5 ● Why Wikimedia? – If it has nothing to do with FIWARE. ● It has a backend Database (Mysql) ● It has a Frontend Web Server (Apache) ● I Allows me to show some tools: IaaS GE. ● I Know how it Works, So I can automate it. ● Images and files are stored in Apache (…/wiki/images) ● Data in the database is stored in /var/lib/mysql Installing an Applicacion: Mediawiki
  • 6. 6 ● https://catalogue.fiware.org/enablers/iaas-ge-fiware-reference-implement ● “We are using OpenStack Vanilla release for the IaaS GE.” ● Openstack APIs work: ● Compute APIs ● Block Storage APIs ● Image Service ● Object Storage ● There are CLIs writen in Python... IaaS GE – FIWARE Reference Implementation
  • 7. 7 # Assuming Python 2.7, pip and virtualenv installed virtualenv osdemo source osdemo/bin/activate pip install python-openstackclient pip install python-swiftclient How to locally install the CLIs
  • 8. A First Approach to the Installation Process 8
  • 10. 10 ● Virtual Machines – Instances ● Instances are managed by Nova. ● We need a few things before deploying an instance ● A Keypair ● In order to be Able to SSH our instances ● Security Groups/Rules ● Because OpenStack acts like a closed Firewall for every instance. Create a first VM
  • 11. 11 # Creating the keypair nova keypair-add summitkp | tee summitkp && chmod 400 summitkp # Creating the security group and rules nova secgroup-create openthings opens_some_ports nova secgroup-add-rule openthings tcp 22 22 0/0 nova secgroup-add-rule openthings tcp 80 80 0/0 nova secgroup-add-rule openthings icmp -1 -1 0/0 # Creating the security group and rules (What I did!): nova secgroup-create allopen open_everything nova secgroup-add-rule allopen tcp 1 65535 0/0 nova secgroup-add-rule allopen ucp 1 65535 0/0 nova secgroup-add-rule allopen icmp -1 -1 0/0 Nova: Key Pairs and Security Groups
  • 12. 12 ● Boot our first instance with some parameters ● (At least) One network ID to allow networking ● Flavor – The size of the Instance ● Our Security Group – our firewall configuration. ● A Keypair – To SSH our instance ● The base image – I’ll use an Ubuntu in the demos. ● Assign a floating IP to some of our instances ● A Floating IP is needed to SSH our instances. We might not be able to SSH private IPs ● 1 Floating IP is allowed per User. Create a first VM (ii)
  • 13. 13 # Find the network ID NETUUID=$(openstack network list | awk '/ node-int-net-01 / {print $2}') # Boot Virtual Machine nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 --key-name summitkp --security-groups allopen --flavor m1.small mydatabase # Creating a floating IP: PUBLIC_EXT_NET=public-ext-net-01 openstack floating ip create $PUBLIC_EXT_NET # Associate the IP to our instance: nova list floating ip create $PUBLIC_EXT_NET openstack floating list nova floating-ip-associate mydatabase 130.206.112.0 Nova: Boot and add a floating IP
  • 14. 14 # Get console URL nova get-vnc-console mydatabase novnc # Creating the security group and rules nova console-log mydatabase Nova: Consoles
  • 15. 15 ● Compute is thought to Compute ● When Instances die, Ephemeral disks die ● Persistent Disk – Block Storage ● Cinder manages Persistent Disks ● The disks, once created can be attached to instances ● Instances must format (once) and mount the disks before use ● Persistent disk will survive Instances. ● A way to Keep data apart from computation. Cinder: Ephemeral Vs Persistent disks
  • 16. 16 # Create a Persistent disk openstack volume create --size 1 myvolume openstack volume list VOLUMEID=$(openstack volume list | awk '/ myvolume / {print $2}') # Attaching the volume to the instance nova volume-attach mydatabase $VOLUMEID # Or attaching at boot time… nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 --key-name summitkp --security-groups allopen --block-device-mapping vdb=$VOLUMEID --flavor m1.small mydatabase Cinder: Persistent Disk Creation
  • 18. 18 ● Increase Productivity ● Automated processes reduce defects ● Reduce Human Errors ● Processes are run effortlessly ● Processes are more flexible => Changes are easier ● Increase satisfaction ● … You can write many other things here ● … And here. Automate: Why?
  • 19. 19 Automate: Using GUI (Cloud Portal) (maybe... ) Too many clicks (maybe)... Too error prone (almost)... Impossible automation Easy to use
  • 20. 20 ● Tools to automate ● Puppet/Chef ● An Agent is required in the instance ● Ansible ● Many features, even some for OpenStack ● Some OpenStack Tools ● Heat / Murano ● Ad Hoc Scripts ● This time it was my option, so I can show some CLI commands Automate: How?
  • 21. 21 Installing an Applicacion: Mediawiki (II) /var/www/html/wiki/images /var/lib/mysql apache-vol kmysql-vol
  • 22. 22 ● Create the Persistent Disk (if it doesn’t exists) ● Boot the VM attaching the Persistent Disk and injecting a Script ● The Script ● Formats the Persistent Disk and mounts it (using /etc/fstab) ● /var/lib/mysql ● Installs MySQL-Server software ● Creates Database and user for the Wiki. One Installation Process: Database
  • 23. 23 ● Create the Persistent Disk (if it doesn’t exists) ● Boot the VM attaching the Persistent Disk and injecting a Script ● The Script ● Formats the Persistent Disk ● Installs Apache, php5, libs, etc ● Downloads Wikimedia and untars it /var/www/html ● Downloads SyntaxHighlight_plugin and untars it. ● Mounts the disk (/var/www/html/wiki/images) ● Creates a FloatingIP and associates it to the instance One Installation Process: Apache
  • 24. 24 # Or attaching at boot time… nova boot --nic net-id=$NETUUID --image base_ubuntu_14.04 --key-name summitkp --security-groups allopen --block-device-mapping vdb=$VOLUMEID --user-data oneScript --flavor m1.small mydatabase The new boot command for Nova
  • 26. 26 ● Mediawiki installation can’t be automated… but ● I can automate LocalSettings.php configuration ● The Script ● Gets the Public IP of our apache ● Sets the Logo, Extensions of Documents which can be uploaded ● Configures SyntaxHighlight extension ● Uploads LocalSettings.php and logo.jpg Can’t automate everything... but almost
  • 27. Some other tools: Images and Object Storage 27
  • 28. 28 ● I can take Snapshots of my instances ● So I can boot a preconfigured Instance ● Glance - The image service is used to create Snapshots ● I’ve taken an Snapshot of my Database Instance ● The process takes some time... ● It is a complicated process that involves many subprocesses Snapshots from instances
  • 29. 29 # Create an Snapshot from an Instance nova image-create krtmysql krtmysql-snp # List images openstack image list # Delete images openstack image delete $IMAGE_ID Image Commands
  • 30. 30 ● It stores static Objects ● We can retrieve the objects in the future ● Swift is the reference implementation of FIWARE’s Object Storage GE ● https://catalogue.fiware.org/enablers/object-storage-ge-fiware-imple ● Objects are Stored in containers ● I’ve uploaded my Preconfigured Mediawiki in a .tgz file to Object Store ● Let’s use this in next Mediawiki installations (as a demo) Object Storage
  • 31. 31 # Create a new Container swift post summit # Upload an object to the Container swift upload summit wiki.tgz # List Containers, list objects from a container swift list swift list summit # Retrieve an object from a container swift download summit wiki.tgz Swift Commands
  • 32. 32 # Retrieve an object from a container… In some scripts. token=($(openstack token issue | awk '/ id / || / project_id / {print $4}')) TOKEN=${token[0]} TENANT_ID=${token[1]} URL=http://130.206.112.3:8080/v1 … # Use the token, and the tenant. swift --os-auth-token $TOKEN --os-storage- url=$URL/AUTH_$TENANT_ID download summit wiki.tgz Swift Commands (to automate)