SlideShare una empresa de Scribd logo
1 de 94
OpenStack Vancouver Summit
Learn you some Ansible for Great Good!
Juergen Brendel (@brendelconsult) , David Lapsley (@devlaps)
May 21, 2015
Unified test and deployment
environments
Dev, Test, Deploy
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
We can't
reproduce the
issues.
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
We can't
reproduce the
issues.
I don't have
access to our
test server.
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
How do I setup
my
development
environment?
We can't
reproduce the
issues.
I don't have
access to our
test server.
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
How do I setup
my
development
environment?
We can't
reproduce the
issues.
I don't have
access to our
test server.
“It works for me...”
(shrug)
Dev, Test, Deploy
Why didn't we
catch this bug
in testing?
How do I setup
my
development
environment?
We can't
reproduce the
issues.
I don't have
access to our
test server.
“It works for me...”
(shrug)Wouldn't this be nice instead?
Single command: Dev environment created
Single command: Test environment created
Summary
• Configuration management background
• Ansible introduction
• Rise of APIs
• Unified test and deployment environments
• Demonstration
Configuration Management
Tools
Overview
Configuring servers
How do you configure a server?
Arcane
magic
Configuring servers
How do you configure a server?
Arcane
magic
Configuring servers
How do you configure a server?
Manual
instructions
Arcane
magic
Configuring servers
How do you configure a server?
Manual
instructions
Scripts
Arcane
magic
Configuring servers
How do you configure a server?
Manual
instructions
Scripts
CM tools
Arcane
magic
Configuring servers
How do you configure a server?
Manual
instructions
Scripts
CM tools
Automation!
CM Tools
Describe the desired state
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure package
“apache” is
installed.
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure that user
“xyz” exists.
Ensure package
“apache” is
installed.
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure that user
“xyz” exists.
Ensure package
“apache” is
installed.
Have latest
sources: Clone
repo, update if it
exists already.
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure that user
“xyz” exists.
Ensure package
“apache” is
installed.
Have latest
sources: Clone
repo, update if it
exists already.
Ensure package
“postgres” v9.1 is
installed.
Ensure all
system packages
are updated.
CM Tools
Describe the desired state
Ensure that user
“xyz” exists.
Ensure package
“apache” is
installed.
Have latest
sources: Clone
repo, update if it
exists already.
Ensure package
“postgres” v9.1 is
installed. Ensure DB
“app_data” exists
with password
“****”.
Configuration Management
Tools
Varieties
Puppet (2005)
“powerful, feature-rich, enterprise-y”
Chef (2009)
CM Tools variety
Puppet (2005)
“powerful, feature-rich, enterprise-y”
Chef (2009)
Salt (2011)
“simple, fast, good for most things”
Ansible (2012)
CM Tools variety
Puppet (2005)
“powerful, feature-rich, enterprise-y”
Chef (2009)
Salt (2011)
“simple, fast, good for most things”
Ansible (2012)
Fabric (2011)
“not really CMS tools”
Scripts
CM Tools variety
Ansible Overview
• “Orchestration engine” for CM and deployment
• Written in Python
• Uses YAML
• “Playbooks”
• Config specs or explicit commands
Ansible overview
• Key Points:
• No central configuration server
• No key management
• No agent to install on target machine
• Explicit order
Ansible simplicity
• Key Points:
• No central configuration server
• No key management
• No agent to install on target machine
• Explicit order
• Requirements:
• Need SSH access (with key or password)
• Need Python installed on target machine
Ansible simplicity
Ansible architecture
Server 1
Server 2
Server 3
Server 4
Server 5
Your laptop
Ansible Overview
Modules
Modules
Hundreds of them. They know how to do stuff…
Command
Shell
Script
Modules
Hundreds of them. They know how to do stuff…
Command
Shell
Script
Copy
Sync
Templates
Line ops
Modules
Hundreds of them. They know how to do stuff…
Command
Shell
Script
Copy
Sync
Templates
Line ops
Install packages
Users and groups
Networking
Services
Modules
Hundreds of them. They know how to do stuff…
Command
Shell
Script
Copy
Sync
Templates
Line ops
Install packages
Users and groups
Networking
Services
Repositories
Message queues
Monitoring
Notification
Modules
Hundreds of them. They know how to do stuff…
Command
Shell
Script
Copy
Sync
Templates
Line ops
Install packages
Users and groups
Networking
Services
Repositories
Message queues
Monitoring
Notification
Web servers
Database servers
Cloud infra
Ansible Overview
How does it
work?
How does it work?
Laptop
How does it work?
Python Module
“Install Apache”
Laptop
run playbook
How does it work?
Python Module
“Install Apache”
Run ModuleLaptop
ssh
How does it work?
Python Module
“Install Apache”
Run Module
(then delete)
Run ModuleLaptop
ssh
How does it work?
Python Module
“Install Apache”
Run Module
(then delete)
Run ModuleLaptop
return results
Ansible Overview
Details
Inventory and groups
Define hosts, organized in groups
Inventory and groups
Define hosts, organized in groups
 by function
 by location
 by hosting provider
 ...
[europe]
server1.somehoster.co.uk
server2.otherhoster.de
[north-america]
host-a.serverhost.com
host-b.serverhost.com
[frontend]
server1.somehoster.co.uk
host-b.serverhost.com
[backend]
server2.otherhoster.de
host-a.serverhost.com
Adhoc commands
Single commands, applied to groups
Adhoc commands
Single commands, applied to groups
$ ansible -i hosts europe –a “uname -a”
$ ansible -i hosts frontend -a “/sbin/reboot” -f 3
• Tell Ansible what to do
Playbooks
---
- hosts: frontend
sudo: yes
tasks:
- name: Update the system
apt: pkg=nginx state=latest
- name: Create the user account
user: name=appuser shell=/bin/bash state=present
- name: Copy files to remote user's home
copy: >
src=files/names.txt dst=/home/appuser
owner=appuser mode=0644
• Provide input to Ansible templates
Variables
---
- hosts: all
sudo: yes
vars:
username: appuser
tasks:
- name: Create the user account
user: >
name={{ username }}
shell=/bin/bash
state=present
• Simple layout for arranging Ansible playbooks, variables,
templates, metadata, etc.
Simple Project Layout
/
my_hosts
group_vars/
all
frontend
backend
europe
north-america
site.yml
• Best practices layout for arranging Ansible playbooks,
variables, templates, metadata, etc.
• Better suited for larger projects
• More extensible
Best Practice Project Layout
/
ansible.cfg
deploy_hosts
staging_hosts
group_vars/
all
frontend
backend
europe
north-america
host_vars/
server1.somehoster.co.uk
host-b.serverhost.com
site.yml
roles/
common/
tasks/
main.yml
handlers/
main.yml
templates/
sshd_config.j2
files/
my_script.sh
vars/
main.yml
web/
...
db/
...
Playbooks with roles
---
- hosts: frontend
sudo: yes
roles:
- common
- web
The rise and rise of APIs
The rise and rise of APIs
APIs
The rise and rise of APIs
APIs
Local
The rise and rise of APIs
APIs
Local Infrastructure
The rise and rise of APIs
APIs
Local Infrastructure Services
The rise and rise of APIs
APIs
Local Infrastructure Services
Ansible 'cloud' modules
Public cloud
 OpenStack
 Amazon AWS
 Google Compute
 Azure
 Digital Ocean
 Linode
Private cloud
• OpenStack
• Eucalyptus
• Vsphere
• Docker
• libvirt
Example: AWS Modules
EC2 / infrastructure
• Instances
• Images
• VPCs
• Load balancers
Services
• S3
• Route 53
• Databases
• Cache
• Create instances via AWS and OpenStack
Example: Create instances
- name: Booting EC2 guests
ec2:
key_name: my-key
group: my-security-group
instance_type: t2.micro
image: ami-120abc90
region: us-east-1
count: 1
register: ec2results
- name: Booting OpenStack guests
nova_compute:
state: present
login_username: "{{ openstack_username }}"
login_password: "{{ openstack_password }}"
login_tenant_name: "{{ openstack_tenantname }}"
name: "{{ cluster_id }}-{{ item }}"
image_id: "{{ openstack_image_id }}"
key_name: "{{ openstack_keyname }}"
wait_for: 60
flavor_id: "{{ openstack_flavor_id }}"
nics:
- net-id: "{{ openstack_internal_net_id }}”
register: openstack_guests
• Add hosts to inventory
Example: Create instances
- local_action:
module: ec2
key_name: my-key
group: my-security-group
instance_type: t2.micro
image: ami-120abc90
region: us-east-1
count: 3
register: ec2results
- local_action:
module: add_host
hostname: {{ item.public_ip }}
groupname: my-server-group
with_items: ec2results.instances
Unified test and deployment
environments
Vagrant
 Use Vagrant to spin-up VMs
 local (VirtualBox, VMware, etc.)
 cloud (EC2)
 Use Ansible as 'provisioner'
 Make an inventory file with just your VM
 Point at same playbook as before
Vagrant
• Tells vagrant which VMs to construct
• How to construct them:
• RAM
• Virtual CPUs
• Network interfaces (public, private, static, nat’d)
Vagrant config: Vagrantfile
Vagrant.configure(2) do |config|
config.vm.box = "saucy64"
config.vm.box_url = "http://cloud-
images.ubuntu.com/vagrant/..."
config.vm.host_name = "myapp-test"
config.vm.network "private_network", ip: "192.168.1.2”
config.vm.provision "ansible" do |ansible|
ansible.playbook = "site.yml"
#ansible.verbose = "vvvv"
ansible.inventory_path = "vagrant_hosts"
ansible.host_key_checking= false
end
end
• Specifies which VMs/Groups Ansible should run against
Inventory: Vagrant Hosts
[vagrant]
vagrant_host
ansible_ssh_host=192.168.1.2
[frontend-hosts]
vagrant_host
[applayer-hosts]
vagrant_host
[backend-hosts]
vagrant_host
[db-access:children]
applayer-hosts
backend-hosts
[appserver-access:children]
frontend-hosts
applayer-hosts
Vars: group_vars/vagrant
Variables that only apply to Vagrant instances
---
ansible_ssh_user: vagrant
Create and configure VMs
$ vagrant up
...
$ vagrant provision
Unified test and deployment
environments
Cattle, not
pets!
Desired development/deployment workflow
- Local unit tests
- Local provisioning with Vagrant + Ansible
- Integration tests
Local dev
and testing
Desired development/deployment workflow
- Create/update cloud
staging servers with
Ansible
- Provision servers with
Ansible
Local dev
and testing
Cloud
testing
Desired development/deployment workflow
- Create/update cloud production
servers with Ansible
- Provision servers with Ansible
Local dev
and testing
Cloud
testing
Cloud deployment
Demo
Dev Environment
Cacher (apt/pip)
MCP MHV1 MHV2
Ansible
Git cache
• Same Ansible playbooks can be used to provision
application locally or in the cloud
Key Takeaways
• Same Ansible playbooks can be used to provision
application locally or in the cloud
• With cloud APIs and Ansible modules (OpenStack, AWS,
Rackspace, …) playbooks can also be used to provision
infrastructure
Key Takeaways
References
• Questions: jbrendel@cisco.com, dlapsley@cisco.com
• Ansible playbooks: http://bit.ly/devstack-ansible
• Ansible docs: http://docs.ansible.com/
• Ansible source: https://github.com/ansible/ansible
• Vagrant: http://www.vagrantup.com/
• Example project: http://bit.ly/ansible-devstack
@brendelconsult, @devlaps
Thank You
Learn you some Ansible for great good!

Más contenido relacionado

La actualidad más candente

Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster Website
Rayed Alrashed
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihan
jbminn
 

La actualidad más candente (20)

Ansible - Hands on Training
Ansible - Hands on TrainingAnsible - Hands on Training
Ansible - Hands on Training
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
Ansible Automation Best Practices From Startups to Enterprises - Minnebar 12
 
Ansible Case Studies
Ansible Case StudiesAnsible Case Studies
Ansible Case Studies
 
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and JenkinsChasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
Chasing AMI - Building Amazon machine images with Puppet, Packer and Jenkins
 
How Ansible Makes Automation Easy
How Ansible Makes Automation EasyHow Ansible Makes Automation Easy
How Ansible Makes Automation Easy
 
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleService Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
 
Carlos Conde : AWS Game Days - TIAD Paris
Carlos Conde : AWS Game Days - TIAD ParisCarlos Conde : AWS Game Days - TIAD Paris
Carlos Conde : AWS Game Days - TIAD Paris
 
Introduction to ansible galaxy
Introduction to ansible galaxyIntroduction to ansible galaxy
Introduction to ansible galaxy
 
Apache Cassandra and Go
Apache Cassandra and GoApache Cassandra and Go
Apache Cassandra and Go
 
Network automation (NetDevOps) with Ansible
Network automation (NetDevOps) with AnsibleNetwork automation (NetDevOps) with Ansible
Network automation (NetDevOps) with Ansible
 
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
DevOps in a Regulated World - aka 'Ansible, AWS, and Jenkins'
 
Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster Website
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Docker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihanDocker ansible-make-chef-puppet-unnecessary-minnihan
Docker ansible-make-chef-puppet-unnecessary-minnihan
 
Ansible 2 and Ansible Galaxy 2
Ansible 2 and Ansible Galaxy 2Ansible 2 and Ansible Galaxy 2
Ansible 2 and Ansible Galaxy 2
 
OpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid CloudOpenSource ToolChain for the Hybrid Cloud
OpenSource ToolChain for the Hybrid Cloud
 
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpecTest-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
Test-Driven Infrastructure with Ansible, Test Kitchen, Serverspec and RSpec
 
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud InfrastructureSCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
SCALE12X Build a Cloud Day: Chef: The Swiss Army Knife of Cloud Infrastructure
 
Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)Go Faster with Ansible (AWS meetup)
Go Faster with Ansible (AWS meetup)
 

Similar a Learn you some Ansible for great good!

OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
Andreas Heim
 
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
 

Similar a Learn you some Ansible for great good! (20)

Running Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic BeanstalkRunning Microservices on AWS Elastic Beanstalk
Running Microservices on AWS Elastic Beanstalk
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
A DevOps guide to Kubernetes
A DevOps guide to KubernetesA DevOps guide to Kubernetes
A DevOps guide to Kubernetes
 
Omaha (Google Update) server
Omaha (Google Update) serverOmaha (Google Update) server
Omaha (Google Update) server
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
 
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them allEclipseCon 2016 - OCCIware : one Cloud API to rule them all
EclipseCon 2016 - OCCIware : one Cloud API to rule them all
 
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open WideOCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
OCCIware Project at EclipseCon France 2016, by Marc Dutoo, Open Wide
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Virtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profitVirtualize and automate your development environment for fun and profit
Virtualize and automate your development environment for fun and profit
 
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Continuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:InventContinuous Deployment @ AWS Re:Invent
Continuous Deployment @ AWS Re:Invent
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
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
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 

Más de David Lapsley

20141001 delapsley-oc-openstack-final
20141001 delapsley-oc-openstack-final20141001 delapsley-oc-openstack-final
20141001 delapsley-oc-openstack-final
David Lapsley
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
David Lapsley
 

Más de David Lapsley (11)

VXLAN Distributed Service Node
VXLAN Distributed Service NodeVXLAN Distributed Service Node
VXLAN Distributed Service Node
 
Empowering Admins by taking away root (Improving platform visibility in Horizon)
Empowering Admins by taking away root (Improving platform visibility in Horizon)Empowering Admins by taking away root (Improving platform visibility in Horizon)
Empowering Admins by taking away root (Improving platform visibility in Horizon)
 
Real-time Statistics with Horizon
Real-time Statistics with HorizonReal-time Statistics with Horizon
Real-time Statistics with Horizon
 
Client-side Rendering with AngularJS
Client-side Rendering with AngularJSClient-side Rendering with AngularJS
Client-side Rendering with AngularJS
 
20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final20141002 delapsley-socalangularjs-final
20141002 delapsley-socalangularjs-final
 
20141001 delapsley-oc-openstack-final
20141001 delapsley-oc-openstack-final20141001 delapsley-oc-openstack-final
20141001 delapsley-oc-openstack-final
 
20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-public20140821 delapsley-cloudopen-public
20140821 delapsley-cloudopen-public
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
 
Openstack Quantum Security Groups Session
Openstack Quantum Security Groups SessionOpenstack Quantum Security Groups Session
Openstack Quantum Security Groups Session
 
Openstack Quantum + Devstack Tutorial
Openstack Quantum + Devstack TutorialOpenstack Quantum + Devstack Tutorial
Openstack Quantum + Devstack Tutorial
 
Openstack Nova and Quantum
Openstack Nova and QuantumOpenstack Nova and Quantum
Openstack Nova and Quantum
 

Último

call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Monica Sydney
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
F
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
JOHNBEBONYAP1
 

Último (20)

Call girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girlsCall girls Service in Ajman 0505086370 Ajman call girls
Call girls Service in Ajman 0505086370 Ajman call girls
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
call girls in Anand Vihar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call GirlsMira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
Mira Road Housewife Call Girls 07506202331, Nalasopara Call Girls
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...Local Call Girls in Seoni  9332606886 HOT & SEXY Models beautiful and charmin...
Local Call Girls in Seoni 9332606886 HOT & SEXY Models beautiful and charmin...
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu DhabiAbu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
Abu Dhabi Escorts Service 0508644382 Escorts in Abu Dhabi
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理一比一原版田纳西大学毕业证如何办理
一比一原版田纳西大学毕业证如何办理
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdfpdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
pdfcoffee.com_business-ethics-q3m7-pdf-free.pdf
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 

Learn you some Ansible for great good!