During this hands-on tutorial you will learn how to quickly provision local test/development/demo environments using Vagrant and Virtualbox. We will cover provisioning and configuring machines quickly using Vagrant and CFEngine. You will learn how Vagrant and Virtualbox can be used to bring up local development/test/demo environments. You will also learn how CFEngine can be leveraged to automate configuration of the environment after it has been initialized. You will take away a multi-vm test environment managed by CFEngine.
This tutorial targets technical people who need repeatable test environments and are comfortable using the Linux command-line. These environments can speed developer on-boarding, play a role in continuous integration, or just provide quick sandboxes for experimentation. No previous knowledge of Vagrant or CFEngine is required.
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngineNick Anderson
During this hands-on tutorial you will learn how to quickly provision local test/development/demo environments using Vagrant and Virtualbox. will cover provisioning and configuring machines quickly using Vagrant and CFEngine. You will learn how Vagrant and Virtualbox can be used to bring up local development/test/demo environments. You will also learn how CFEngine can be leveraged to automate configuration of the environment after it has been initialized. You will take away a multi-vm test environment managed by CFEngine.
This tutorial targets technical people who need repeatable test environments and are comfortable using the Linux command-line. These environments can speed developer on-boarding, play a role in continuous integration, or just provide quick sandboxes for experimentation. No previous knowledge of Vagrant or CFEngine is required.
Attendees should bring a laptop with at least 10G of available disk space (SSD strongly recommended, but not required), and have current versions of Vagrant and Virtualbox installed.
Vagrant step-by-step guide for BeginnersSagar Acharya
This document discusses Vagrant, an open-source tool for managing virtual machine environments in development workflows. It provides instructions on installing Vagrant, cloning Vagrant boxes, sharing files between host and guest machines using rsync, and common Vagrant commands. The key benefits of Vagrant include easily replicating production environments, sharing VM configurations, and not having to repeatedly set up environments.
This document provides an overview of Vagrant and how it can be used to create development environments. Vagrant allows users to easily set up and configure virtual machine environments for development and testing. It works by defining a "Vagrantfile" that specifies the virtual machine configuration. Vagrant supports provisioning tools like Puppet, Chef and Docker to automate the configuration of VMs. It also allows sharing files between the host computer and guest VMs for development. The document discusses common Vagrant commands and how it can be used to create reproducible environments for tasks like testing configuration code.
Vagrant are you still develop in a non-virtual environment-Anatoly Bubenkov
This document introduces Vagrant, an open source tool that allows users to create and manage virtual development environments. It discusses how Vagrant works with virtualization providers like VirtualBox to provide reproducible environments that match production. The document provides step-by-step instructions for installing Vagrant, configuring virtual machines using Vagrantfiles, provisioning machines, and networking. It highlights benefits like versioning environments and sharing code between hosts and guests.
This document summarizes a presentation about the Conan package manager for C and C++ applications. It discusses popular C++ libraries that are commonly needed like Boost and Poco. It shows how Conan can be used to add these libraries as dependencies to a project without needing to build them manually. The document provides an example of using Conan to add Boost and Poco to a demo application that calculates an MD5 hash and validates an email address. It also gives an overview of how Conan works, including its package naming scheme, local caching of packages, and community around sharing packages on Bintray.
This document outlines an agenda for a Vagrant 101 workshop. The workshop will teach participants about environments and Infrastructure as Code using Vagrant. It will cover setting up a Vagrant environment with VirtualBox, basic Vagrant commands like init, up, ssh, destroy and box add. The agenda includes introducing environments, Vagrant, VirtualBox, commands, and workflow. Requirements are basic Linux knowledge and the latest versions of Vagrant and VirtualBox installed.
This document introduces Vagrant, an open source tool that allows users to easily create and configure virtual development environments. It discusses how Vagrant uses VirtualBox to manage virtual machines, and how it supports provisioning tools like shell scripts and Puppet to automate the installation of software. The document also provides instructions on installing Vagrant, creating virtual machines, configuring networking and hardware settings, and using provisioning tools to automate software configuration in the virtual machines.
Ohio Linux Fest 2013: Provisioning VMs Quickly with Vagrant and CFEngineNick Anderson
During this hands-on tutorial you will learn how to quickly provision local test/development/demo environments using Vagrant and Virtualbox. will cover provisioning and configuring machines quickly using Vagrant and CFEngine. You will learn how Vagrant and Virtualbox can be used to bring up local development/test/demo environments. You will also learn how CFEngine can be leveraged to automate configuration of the environment after it has been initialized. You will take away a multi-vm test environment managed by CFEngine.
This tutorial targets technical people who need repeatable test environments and are comfortable using the Linux command-line. These environments can speed developer on-boarding, play a role in continuous integration, or just provide quick sandboxes for experimentation. No previous knowledge of Vagrant or CFEngine is required.
Attendees should bring a laptop with at least 10G of available disk space (SSD strongly recommended, but not required), and have current versions of Vagrant and Virtualbox installed.
Vagrant step-by-step guide for BeginnersSagar Acharya
This document discusses Vagrant, an open-source tool for managing virtual machine environments in development workflows. It provides instructions on installing Vagrant, cloning Vagrant boxes, sharing files between host and guest machines using rsync, and common Vagrant commands. The key benefits of Vagrant include easily replicating production environments, sharing VM configurations, and not having to repeatedly set up environments.
This document provides an overview of Vagrant and how it can be used to create development environments. Vagrant allows users to easily set up and configure virtual machine environments for development and testing. It works by defining a "Vagrantfile" that specifies the virtual machine configuration. Vagrant supports provisioning tools like Puppet, Chef and Docker to automate the configuration of VMs. It also allows sharing files between the host computer and guest VMs for development. The document discusses common Vagrant commands and how it can be used to create reproducible environments for tasks like testing configuration code.
Vagrant are you still develop in a non-virtual environment-Anatoly Bubenkov
This document introduces Vagrant, an open source tool that allows users to create and manage virtual development environments. It discusses how Vagrant works with virtualization providers like VirtualBox to provide reproducible environments that match production. The document provides step-by-step instructions for installing Vagrant, configuring virtual machines using Vagrantfiles, provisioning machines, and networking. It highlights benefits like versioning environments and sharing code between hosts and guests.
This document summarizes a presentation about the Conan package manager for C and C++ applications. It discusses popular C++ libraries that are commonly needed like Boost and Poco. It shows how Conan can be used to add these libraries as dependencies to a project without needing to build them manually. The document provides an example of using Conan to add Boost and Poco to a demo application that calculates an MD5 hash and validates an email address. It also gives an overview of how Conan works, including its package naming scheme, local caching of packages, and community around sharing packages on Bintray.
This document outlines an agenda for a Vagrant 101 workshop. The workshop will teach participants about environments and Infrastructure as Code using Vagrant. It will cover setting up a Vagrant environment with VirtualBox, basic Vagrant commands like init, up, ssh, destroy and box add. The agenda includes introducing environments, Vagrant, VirtualBox, commands, and workflow. Requirements are basic Linux knowledge and the latest versions of Vagrant and VirtualBox installed.
This document introduces Vagrant, an open source tool that allows users to easily create and configure virtual development environments. It discusses how Vagrant uses VirtualBox to manage virtual machines, and how it supports provisioning tools like shell scripts and Puppet to automate the installation of software. The document also provides instructions on installing Vagrant, creating virtual machines, configuring networking and hardware settings, and using provisioning tools to automate software configuration in the virtual machines.
Vagrant hands on workshop for beginnersLiora Milbaum
This document outlines an agenda for a hands-on workshop on Vagrant for beginners. The agenda includes introductions to Vagrant and VirtualBox, the Vagrant and VirtualBox workflow, getting and configuring base boxes, and provisioning virtual machines using shell scripts. The workshop demonstrates how to use Vagrant to create lightweight reproducible development environments across different operating systems and configuration management tools.
(auto)Installing BSD Systems
The auto-installation methods you can use to set BSD operating systems up and running
-----
After more than a decade in touch with systems like FreeBSD, not by just consuming them as an end-user but also by working as a sysadmin or by developing 'BSD Powered' solutions, you might fall into pitfalls by not easily finding a way to fully automate their installations. The good news: it's possible and it's not as complicated as you might think!
Today's needs regarding automating things like an O.S. installation can save you a lot of time; Kickstart or Preseed files are not the only ways of doing it. One can even combine or expand it all to add patching and updating routines into the game.
Here we are not talking about a one-click solution or something like querying an API endpoint to provide you with a shiny virtual machine; no. The main idea behind this talk is to present you with a tool-set and ways of (auto)installing your machines, let's say, using a NetBSD operating system; be it virtual, or not.
Inspired by talks like the ones showing how OpenBSD Amsterdam sets its virtual machines up, we get together and share thoughts, ideas and setups to get DHCP, iPXE and diskless systems in our favor to set our infrastructure up and running.
Concerned about the first boot and keeping up with services' configurations and consistencies, we also talk about getting Puppet to watch it for you. Considering plain text passwords no one wishes to host in a Git repository, EYAML to the rescue!
-----
DEMO
* https://share.riseup.net/#Uomo3eX77PLcgicqNFdVXw
* https://share.riseup.net/#rPDzTIcRGEzTYkoUD2MwLw
Helpful pre commit hooks for Python and Djangoroskakori
Pre-commit hooks can help to keep your source code consistent and discover broken code before it makes it into the repository. This lightning talk describes pre-commit hooks that can be helpful when developing with Python, especially when using the Django framework. It also provides consistent example configurations for hooks that have conflicting defaults.
Dieser Vortrag zeigt, welchen Herausforderungen im Hosting punkt.de in der jüngeren Vergangenheit gegenüber stand und welche Änderungen gegenüber unserer 2010 vorgestellten "NanoBSD"-Architektur wir seitdem umgesetzt haben. Der proServer hat auf der Seite des Hosting-Anbieters viele der erwünschten Eigenschaften eines "Private Cloud"-Produkts, stellt sich dem Kunden aber wie ein klassischer Root-Server dar. Für Anwendungen, bei denen eine solche Plattform gefordert ist, ein unschätzbarer Vorteil gegenüber reinen Container-Lösungen, die praktisch immer eine speziell angepasste Anwendungs-Architektur benötigen.
Using docker to develop NAS applicationsTerry Chen
This document introduces using Docker to develop NAS applications. It begins with an overview of Docker and containers, then demonstrates how to build Docker images, run containers, and deploy NAS applications as Docker containers using Container Station. It also addresses some common questions about Docker including how to skip Container Station initialization, debug closed containers, backup container data, access NAS information from containers, and resources for learning Docker.
Vagrant allows users to easily create and configure virtual development environments. The document outlines a 5 step process to get started with Vagrant: 1) select a virtualization provider like VirtualBox, 2) install Vagrant, 3) download a virtual machine image or "box", 4) initialize and start the VM with Vagrant commands, and 5) log into the VM via SSH. It also discusses additional features like version controlling Vagrant files, customizing the VM, using multiple VMs, and provisioning VMs with tools like Puppet, Chef, or Ansible.
This document discusses challenges with configuring and managing third-party applications like SIPXecs using existing tools. It explores options like screen scraping, test frameworks like Cucumber and Selenium, but notes issues with reliability as GUIs change. The document concludes that no good solution exists yet and suggests talking to vendors, being patient, and setting a good example. It asks how the reader would solve the problem of needing an API or reliable way to configure applications without extensive manual effort.
This document provides information on developing QNAP NAS apps using Docker. It introduces Docker and how apps can be packaged and run as Docker containers on QNAP NAS. It discusses using QDK/QDK2 to build QPKG packages for apps and deploying them to QNAP NAS through Container Station. Examples of building a Ghost blogging platform app and debugging techniques are also presented. The document aims to educate developers on leveraging Docker for app development on QNAP NAS.
Developing and Deploying PHP with DockerPatrick Mizer
The document discusses using Docker for developing and deploying PHP applications. It begins with an introduction to Docker, explaining that Docker allows applications to be assembled from components and eliminates friction between development, testing and production environments. It then covers some key Docker concepts like containers, images and the Docker daemon. The document demonstrates building a simple PHP application as a Docker container, including creating a Dockerfile and building/running the container. It also discusses some benefits of Docker like portability, separation of concerns between developers and DevOps, and immutable build artifacts.
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...HighSolutions Sp. z o.o.
Prezentacja, która miała miejsce 2019-09-05 w Poznaniu.
Wykonanie: Marek Tenus (HighSolutions)
Temat: "Speed up web API with Laravel and Swoole using Docker"
The document discusses moving a Tomcat cluster to the cloud. It describes how Tomcat uses multicast for session replication in a cluster, but this does not work in the cloud. The solution presented uses the Kubernetes API to discover cluster nodes instead of multicast, allowing session replication to function in OpenShift. The architecture includes a DynamicMembershipService that refreshes the node list from a KubernetesMemberProvider accessing the Kubernetes API. This allows a Tomcat cluster to run in OpenShift with external session replication.
OpenNebula, the foreman and CentOS play nice, tooinovex GmbH
This document discusses setting up a private cloud using OpenNebula and the Foreman. It begins with an introduction and agenda. It then covers installing CentOS, setting up a local YUM repository using Pulp, installing the Foreman for bare metal provisioning, and using Puppet modules. It demonstrates deploying OpenNebula nodes using the Foreman and provides an overview of accessing the new cloud. It notes there are some rough edges to address but the modules are minor. It concludes by thanking the audience and providing contact information.
An introductory talk to Foreman, with an overview of how Foreman's plugin ecosystem can help you manage your data center. We'll talk about Discovery, Katello, Docker, and additional configuration management platforms beyond Puppet.
https://www.facebook.com/groups/InfraEngineer
GIF pack include version
https://docs.google.com/presentation/d/1BTwGPUG6KGwc3xoW1_vU7CmloHXW-ardytNWomPdSy4/edit?usp=sharing
This document provides instructions for setting up Docker and Fig on Mac OS X. It describes installing Homebrew, VirtualBox, Vagrant, and Docker client tools. It also explains setting up a CoreOS VM using Vagrant to run Docker containers remotely, and installing Fig to manage Docker containers. Finally, it provides examples of running a Docker image directly and using Fig to test the full Docker configuration.
uWSGI - Swiss army knife for your Python web appsTomislav Raseta
uWSGI is a full-stack tool for building hosting services that acts as an application server for Python web apps using the WSGI specification. It provides a pluggable architecture, versatility, high performance, low resource usage, and reliability. Configuration options are extensive and allow for processes, threads, reloading, monitoring and more. Proper configuration and testing is required to optimize performance for production deployments.
Docker in Production: Reality, Not Hype - DevOps Chicagobridgetkromhout
- The document discusses using Docker in production at DramaFever, a video streaming company.
- DramaFever runs various services like their Python/Django website and Go microservices across AWS, with nginx routing and Celery/SQS for async tasks. They see peak loads of tens of thousands of requests per second.
- They use Docker to enable consistent development and repeatable deployments. Their private Docker registry is hosted on S3 for image storage. They implement various techniques like base images and Jenkins for builds.
This document discusses Docker in production at DramaFever. Some key points:
- Docker provides consistent development and repeatable deployments.
- DramaFever uses a private Docker registry hosted on S3 for image storage. They faced scaling issues with a central registry server.
- Jenkins is used to build Docker images from source code and push them to the private registry for deployment.
- Docker is used throughout the development and deployment process, from local development to production. It has provided benefits like faster builds and easier configuration management.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
The document provides an overview of snaps and snapd:
- Snaps are packages that provide application sandboxing and confinement using interfaces and security policies. They work across distributions and allow automatic updates.
- Snapcraft is used to build snaps by defining parts and plugins in a yaml file. Snaps are mounted at runtime rather than unpacked.
- Snapd is the daemon that installs, removes, and updates snaps. It manages security interfaces and confinement policies between snaps.
- The store publishes snaps to channels of different risk levels. Snapd installs the revisions specified by the store for each channel.
LOPSA East 2013: New Brunswick, NJ
Getting started with Vagrant and CFEngine.
Walk away with a cross platform (Windows, Mac, Linux) demo environment consisting of one CFEngine hub and 2 nodes using a dynamic Vagrant configuration and some example CFEngine 3 policy to get you started.
If you attended or watched the video of this presentation (link to be added) please consider filling out the trainer survey.
http://lopsa-east.org/2013/training-survey
Toronto VMware User Group Opening - Angelo LucianiAngelo Luciani
This document is a newsletter from the Toronto VMUG that provides information on upcoming events and topics of interest. It lists 4 articles on deploying vCenter and SRM in Windows environments, rethinking storage performance with Pernixdata, OpenStack and industry shifts to open cloud, and the vCommunity. It also includes links to the VMware vSphere beta community and education resources, and announces the Toronto VMUG Q3 and Q4 2014 events. It ends by providing a contact email to share additional topics of interest.
Vagrant hands on workshop for beginnersLiora Milbaum
This document outlines an agenda for a hands-on workshop on Vagrant for beginners. The agenda includes introductions to Vagrant and VirtualBox, the Vagrant and VirtualBox workflow, getting and configuring base boxes, and provisioning virtual machines using shell scripts. The workshop demonstrates how to use Vagrant to create lightweight reproducible development environments across different operating systems and configuration management tools.
(auto)Installing BSD Systems
The auto-installation methods you can use to set BSD operating systems up and running
-----
After more than a decade in touch with systems like FreeBSD, not by just consuming them as an end-user but also by working as a sysadmin or by developing 'BSD Powered' solutions, you might fall into pitfalls by not easily finding a way to fully automate their installations. The good news: it's possible and it's not as complicated as you might think!
Today's needs regarding automating things like an O.S. installation can save you a lot of time; Kickstart or Preseed files are not the only ways of doing it. One can even combine or expand it all to add patching and updating routines into the game.
Here we are not talking about a one-click solution or something like querying an API endpoint to provide you with a shiny virtual machine; no. The main idea behind this talk is to present you with a tool-set and ways of (auto)installing your machines, let's say, using a NetBSD operating system; be it virtual, or not.
Inspired by talks like the ones showing how OpenBSD Amsterdam sets its virtual machines up, we get together and share thoughts, ideas and setups to get DHCP, iPXE and diskless systems in our favor to set our infrastructure up and running.
Concerned about the first boot and keeping up with services' configurations and consistencies, we also talk about getting Puppet to watch it for you. Considering plain text passwords no one wishes to host in a Git repository, EYAML to the rescue!
-----
DEMO
* https://share.riseup.net/#Uomo3eX77PLcgicqNFdVXw
* https://share.riseup.net/#rPDzTIcRGEzTYkoUD2MwLw
Helpful pre commit hooks for Python and Djangoroskakori
Pre-commit hooks can help to keep your source code consistent and discover broken code before it makes it into the repository. This lightning talk describes pre-commit hooks that can be helpful when developing with Python, especially when using the Django framework. It also provides consistent example configurations for hooks that have conflicting defaults.
Dieser Vortrag zeigt, welchen Herausforderungen im Hosting punkt.de in der jüngeren Vergangenheit gegenüber stand und welche Änderungen gegenüber unserer 2010 vorgestellten "NanoBSD"-Architektur wir seitdem umgesetzt haben. Der proServer hat auf der Seite des Hosting-Anbieters viele der erwünschten Eigenschaften eines "Private Cloud"-Produkts, stellt sich dem Kunden aber wie ein klassischer Root-Server dar. Für Anwendungen, bei denen eine solche Plattform gefordert ist, ein unschätzbarer Vorteil gegenüber reinen Container-Lösungen, die praktisch immer eine speziell angepasste Anwendungs-Architektur benötigen.
Using docker to develop NAS applicationsTerry Chen
This document introduces using Docker to develop NAS applications. It begins with an overview of Docker and containers, then demonstrates how to build Docker images, run containers, and deploy NAS applications as Docker containers using Container Station. It also addresses some common questions about Docker including how to skip Container Station initialization, debug closed containers, backup container data, access NAS information from containers, and resources for learning Docker.
Vagrant allows users to easily create and configure virtual development environments. The document outlines a 5 step process to get started with Vagrant: 1) select a virtualization provider like VirtualBox, 2) install Vagrant, 3) download a virtual machine image or "box", 4) initialize and start the VM with Vagrant commands, and 5) log into the VM via SSH. It also discusses additional features like version controlling Vagrant files, customizing the VM, using multiple VMs, and provisioning VMs with tools like Puppet, Chef, or Ansible.
This document discusses challenges with configuring and managing third-party applications like SIPXecs using existing tools. It explores options like screen scraping, test frameworks like Cucumber and Selenium, but notes issues with reliability as GUIs change. The document concludes that no good solution exists yet and suggests talking to vendors, being patient, and setting a good example. It asks how the reader would solve the problem of needing an API or reliable way to configure applications without extensive manual effort.
This document provides information on developing QNAP NAS apps using Docker. It introduces Docker and how apps can be packaged and run as Docker containers on QNAP NAS. It discusses using QDK/QDK2 to build QPKG packages for apps and deploying them to QNAP NAS through Container Station. Examples of building a Ghost blogging platform app and debugging techniques are also presented. The document aims to educate developers on leveraging Docker for app development on QNAP NAS.
Developing and Deploying PHP with DockerPatrick Mizer
The document discusses using Docker for developing and deploying PHP applications. It begins with an introduction to Docker, explaining that Docker allows applications to be assembled from components and eliminates friction between development, testing and production environments. It then covers some key Docker concepts like containers, images and the Docker daemon. The document demonstrates building a simple PHP application as a Docker container, including creating a Dockerfile and building/running the container. It also discusses some benefits of Docker like portability, separation of concerns between developers and DevOps, and immutable build artifacts.
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...HighSolutions Sp. z o.o.
Prezentacja, która miała miejsce 2019-09-05 w Poznaniu.
Wykonanie: Marek Tenus (HighSolutions)
Temat: "Speed up web API with Laravel and Swoole using Docker"
The document discusses moving a Tomcat cluster to the cloud. It describes how Tomcat uses multicast for session replication in a cluster, but this does not work in the cloud. The solution presented uses the Kubernetes API to discover cluster nodes instead of multicast, allowing session replication to function in OpenShift. The architecture includes a DynamicMembershipService that refreshes the node list from a KubernetesMemberProvider accessing the Kubernetes API. This allows a Tomcat cluster to run in OpenShift with external session replication.
OpenNebula, the foreman and CentOS play nice, tooinovex GmbH
This document discusses setting up a private cloud using OpenNebula and the Foreman. It begins with an introduction and agenda. It then covers installing CentOS, setting up a local YUM repository using Pulp, installing the Foreman for bare metal provisioning, and using Puppet modules. It demonstrates deploying OpenNebula nodes using the Foreman and provides an overview of accessing the new cloud. It notes there are some rough edges to address but the modules are minor. It concludes by thanking the audience and providing contact information.
An introductory talk to Foreman, with an overview of how Foreman's plugin ecosystem can help you manage your data center. We'll talk about Discovery, Katello, Docker, and additional configuration management platforms beyond Puppet.
https://www.facebook.com/groups/InfraEngineer
GIF pack include version
https://docs.google.com/presentation/d/1BTwGPUG6KGwc3xoW1_vU7CmloHXW-ardytNWomPdSy4/edit?usp=sharing
This document provides instructions for setting up Docker and Fig on Mac OS X. It describes installing Homebrew, VirtualBox, Vagrant, and Docker client tools. It also explains setting up a CoreOS VM using Vagrant to run Docker containers remotely, and installing Fig to manage Docker containers. Finally, it provides examples of running a Docker image directly and using Fig to test the full Docker configuration.
uWSGI - Swiss army knife for your Python web appsTomislav Raseta
uWSGI is a full-stack tool for building hosting services that acts as an application server for Python web apps using the WSGI specification. It provides a pluggable architecture, versatility, high performance, low resource usage, and reliability. Configuration options are extensive and allow for processes, threads, reloading, monitoring and more. Proper configuration and testing is required to optimize performance for production deployments.
Docker in Production: Reality, Not Hype - DevOps Chicagobridgetkromhout
- The document discusses using Docker in production at DramaFever, a video streaming company.
- DramaFever runs various services like their Python/Django website and Go microservices across AWS, with nginx routing and Celery/SQS for async tasks. They see peak loads of tens of thousands of requests per second.
- They use Docker to enable consistent development and repeatable deployments. Their private Docker registry is hosted on S3 for image storage. They implement various techniques like base images and Jenkins for builds.
This document discusses Docker in production at DramaFever. Some key points:
- Docker provides consistent development and repeatable deployments.
- DramaFever uses a private Docker registry hosted on S3 for image storage. They faced scaling issues with a central registry server.
- Jenkins is used to build Docker images from source code and push them to the private registry for deployment.
- Docker is used throughout the development and deployment process, from local development to production. It has provided benefits like faster builds and easier configuration management.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
The document provides an overview of snaps and snapd:
- Snaps are packages that provide application sandboxing and confinement using interfaces and security policies. They work across distributions and allow automatic updates.
- Snapcraft is used to build snaps by defining parts and plugins in a yaml file. Snaps are mounted at runtime rather than unpacked.
- Snapd is the daemon that installs, removes, and updates snaps. It manages security interfaces and confinement policies between snaps.
- The store publishes snaps to channels of different risk levels. Snapd installs the revisions specified by the store for each channel.
LOPSA East 2013: New Brunswick, NJ
Getting started with Vagrant and CFEngine.
Walk away with a cross platform (Windows, Mac, Linux) demo environment consisting of one CFEngine hub and 2 nodes using a dynamic Vagrant configuration and some example CFEngine 3 policy to get you started.
If you attended or watched the video of this presentation (link to be added) please consider filling out the trainer survey.
http://lopsa-east.org/2013/training-survey
Toronto VMware User Group Opening - Angelo LucianiAngelo Luciani
This document is a newsletter from the Toronto VMUG that provides information on upcoming events and topics of interest. It lists 4 articles on deploying vCenter and SRM in Windows environments, rethinking storage performance with Pernixdata, OpenStack and industry shifts to open cloud, and the vCommunity. It also includes links to the VMware vSphere beta community and education resources, and announces the Toronto VMUG Q3 and Q4 2014 events. It ends by providing a contact email to share additional topics of interest.
A empresa de tecnologia anunciou um novo smartphone com câmera aprimorada, tela maior e bateria de longa duração por um preço acessível. O dispositivo tem como objetivo atrair mais consumidores em mercados emergentes com suas especificações equilibradas e preço baixo. Analistas esperam que as melhorias e o preço baixo impulsionem as vendas do novo aparelho.
The document describes an activity where students built a model city and one student had to give directions to another student to navigate from one location to another in the city using vocabulary words like turn, right, left, go, walk, straight ahead, past, up/down stairs, and over bridges. The students learned new vocabulary, communication skills, teamwork, and had fun problem-solving while learning.
The document describes an activity where students built a model city and had to give each other directions to locations using vocabulary like turn left/right, go straight, and pass landmarks. The students learned new vocabulary, communication skills, teamwork, and problem solving while having fun learning.
Security_Practices_with_CFEngine-cfgcamp_2016Nick Anderson
This document discusses various security practices for managing infrastructure with CFEngine, including:
1. Compartmentalizing infrastructure into "Gold", "Silver", and "Bronze" zones to isolate breaches and carefully structure policy files.
2. Setting up distributed "policy hub" servers to improve performance and security by localizing the administration burden.
3. Using tools like cf-keycrypt to encrypt secrets in policy and restrict access to sensitive bundles, files, and repositories.
4. Monitoring file changes to detect unauthorized modifications and securely bootstrapping trust between agents and hubs.
Green technology encompasses methods and materials for more sustainable energy generation, pollution reduction, and green building practices. It aims to meet society's needs indefinitely without damaging resources by innovating alternatives to fossil fuels and chemical intensive practices. Key aspects include source reduction, sustainable energy innovation, green building material selection, and green chemistry to reduce hazardous substances.
OpenStack and the Industry Shift with Open Cloud - Eric WrightAngelo Luciani
This document discusses the shift towards open source and open cloud technologies in enterprises. It notes that while open source and OpenStack are not new, enterprise adoption is growing and changing the technology landscape. Open source projects allow more flexible software frameworks and tools that are customer-focused. The document encourages getting involved by starting to study available open source resources, products, methodologies, and adapting existing work to new open source ways of working.
The Heisenberg Uncertainty Principle[1]guestea12c43
The document discusses three quantum physics concepts:
1) The Heisenberg Uncertainty Principle, which states that certain pairs of measurable properties, such as position and momentum, cannot be known simultaneously due to the energy required to observe a system.
2) The Schrödinger Equation, which Erwin Schrödinger derived to describe electrons and their behavior under external potential fields using a 'wave function'.
3) Tunneling, a quantum effect where particles can transition through classically-forbidden energy barriers, rather than needing to pass over them.
The document discusses the 90/10 principle, which states that individuals have control over 90% of what happens in their lives through their reactions to events, while only 10% consists of events truly outside their control. It provides an example of how one's day can be ruined by reacting negatively to a small accident, while remaining positive and in control of one's reactions can prevent the day from being ruined. The principle teaches that focusing on responding constructively to life's challenges rather than stressing over external factors improves one's life experience and well-being.
Green technology encompasses methods and materials for more sustainable energy generation, pollution reduction, and green building practices. It aims to meet society's needs indefinitely without damaging resources by innovating alternatives to fossil fuels and chemical-intensive processes. Key aspects include source reduction to cut waste and pollution, developing renewable energy and efficiency solutions, using non-toxic materials in green building and chemistry, and sustainably meeting needs over generations.
Take home your very own free Vagrant CFML Dev Environment - Presented at dev....Gavin Pickin
Vagrant is a great solution for providing all of your devs a standard dev environment, but like all the other great technology out there, you have to learn it, and then implement it.
Not anymore, this session will give you a well used, documented Vagrant Setup, with the flexibility to use it for all of your future dev projects too. Learn how this Vagrant Environment is setup, and how to extend it. Kill the learning curve, and spin it up today.
This setup is being used by several devs, on several projects, and has simple flexibility built in. Drop your repos in the main folder, follow simple conventions, and add a small amount of configuration and be able to spin up your environment in minutes. This setup can configure a simple welcome page, configure the web server and cfml engine mappings, datasources, web server settings per site, host entries, and much more.
As great as this sounds, nothing is ever perfect, learn how some assumptions left me looking silly, and owing another developer a meal, and how I resolved that issue and made this vagrant setup even better.
Vagrant is a great solution for providing all of your devs a standard dev environment, but like all the other great technology out there, you have to learn it, and then implement it.
Not anymore, this session will give you a well used, documented Vagrant Setup, with the flexibility to use it for all of your future dev projects too. Learn how this Vagrant Environment is setup, and how to extend it. Kill the learning curve, and spin it up today.
This setup is being used by several devs, on several projects, and has simple flexibility built in. Drop your repos in the main folder, follow simple conventions, and add a small amount of configuration and be able to spin up your environment in minutes. This setup can configure a simple welcome page, configure the web server and cfml engine mappings, datasources, web server settings per site, host entries, and much more.
As great as this sounds, nothing is ever perfect, learn how some assumptions left me looking silly, and owing another developer a meal, and how I resolved that issue and made this vagrant setup even better.
This document provides instructions for installing Nagios Core and Nagios Plugins from source on CentOS and Ubuntu servers. It describes downloading the necessary tarballs, adding the Nagios user and group, compiling and installing Nagios Core and Plugins, configuring Nagios as a service, and accessing the Nagios web interface. Key steps include configuring with the appropriate options, making and installing, adding the nagios user, installing plugins, and enabling Nagios and the web server to start on boot.
This document provides an introduction to using Vagrant, including:
- What Vagrant is and why it is useful for sharing identical development environments across teams
- How to install Vagrant on Linux and configure a Vagrantfile
- Key concepts like providers, boxes, and provisioners for setting up and managing virtual machines
- Common Vagrant commands for accessing, halting, and sharing virtual machines
This document discusses approaches to containerizing operating systems and development environments to automate software project setup and decrease onboarding time. It analyzes different layers involved in coding (project source, libraries, OS packages, OS, device) and whether their setup is declarative. Containerizing the OS and using tools like Docker, Nix, and containerized dev environments can automate previously manual setup steps and ensure consistency across environments. Fully automated solutions include using online IDE services while bringing your own browser and device.
Implementing DevOps Using Vagrant with Ansible
Understanding DevOps
Provisioning Vagrant Machines
Integrating Vagrant with Ansible
Creating a Vagrant Development Environment
Completing the Vagrant DevOps Environment
Come learn about Vagrant - a tool to create and configure lightweight, reproducible, and portable development environments plus provisioning options to automate the environment configuration. Vagrant lowers development environment setup time, increases development/production parity, and makes the "works on my machine" excuse a relic of the past.
Speed up your development environment PHP + Nginx + Fedora + PGMarcus Sá
The document provides instructions for setting up a development environment on Fedora with PHP, Nginx, and PostgreSQL for a tight deadline project where PHP is required. It recommends avoiding complexity by using existing modules. The steps include updating the system, installing Nginx, configuring Nginx, installing PHP and configuring PHP FastCGI, installing PostgreSQL, and noting that is all that is needed to set up the minimum viable environment for the project.
There are a lot of new trends when it comes to how you can deploy your servers. From AWS, to Docker, or perhaps you just want a faster way to stand up new VMs. The common thread among all of these comes down to automation! CommandBox is the kingpin in being able to automated every piece of a ColdFusion or Lucee server setup so you can get stable, repeatable builds every time. CommandBox isn't just for developers though. It's a rock solid server built on JBoss Undertow that can handle any production load. Come learn some tricks and features to leverage CommandBox for your production servers whether it's Docker, or a managed cluster of your own.
Adam Culp will talk about using Vagrant to create and manage virtualized development environments, making it easier to mirror production servers. Then will cover using Puppet for more advanced provisioning, making the addition of multiple development environments and servers easier and faster.
If you’re developing and are not sure what these technologies are, this talk is for you. As a developer it’s increasingly important to ensure our development, testing, staging, and production environments are as closely matched to each other as possible, alleviating the “can’t reproduce it on my machine” excuses. Whether you use 2, 3, or 4 of these environments is of less importance if they are all built on the same “stack” of applications.
Perl hosting for beginners - Cluj.pm March 2013Arpad Szasz
This document provides instructions for beginner Perl web developers to host a simple dynamic website using Perl and shared hosting. It recommends using Strawberry Perl on Windows, Apache as the web server, and the Mojolicious framework. It includes steps to configure Apache and Mojolicious, add templates, and an .htaccess file to route requests to the Perl application. The templates can include Perl code and are deployed along with the application code via FTP to a shared hosting server.
This document discusses optimizing a development process by migrating from a VirtualBox setup to using Warden, an open source Docker development environment. It outlines issues with the old VirtualBox setup such as slow performance and high resource usage. Requirements for a new setup include fast environments, security, ability to run multiple projects, and compatibility across operating systems. Several solutions were analyzed and Warden was selected for its features like Traefik for routing, Portainer for visibility, and easy project migration. The document demonstrates how to install Warden and migrate a local Magento 2 project, including commands for common development tasks.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
Puppet Camp Seattle 2014: Docker and Puppet: 1+1=3 Puppet
This document discusses Docker and Puppet and how they can be used together. It suggests using Puppet to install and configure Docker on the host system, and then using Dockerfiles to build container images in a deterministic way. While Puppet could theoretically be used to build containers, the document argues it is better to use Dockerfiles for image builds and to separate operational concerns like logging and monitoring into separate containers for better portability and flexibility.
This workshop was given at Crikeycon 2019 in Brisbane. It introduces Velociraptor and explains some of the design goals and implementation.
Note - this slide deck is outdated but might still be useful. The tool has evolved significantly since Crikeycon.
The document discusses the speaker's recommendations for using Vim effectively. It provides tips for incrementally learning Vim, using GUI or terminal versions, remapping keys like Caps Lock and spacebar, useful plugins for tasks like navigation and code editing, and specific plugin recommendations from developers like tpope and scrooloose. The speaker's favorite tip is to remap Caps Lock to Esc.
This document provides instructions for installing and configuring Nagios network monitoring software on CentOS 4.x/5.x. It discusses installing required packages, configuring Apache as the web server, setting up authentication, editing configuration files, and starting Nagios services. The summary focuses on the high-level steps:
1. Install Nagios and related packages using yum.
2. Configure Apache and enable authentication using htpasswd.
3. Edit configuration files such as nagios.cfg, cgi.cfg and object files to define monitoring configurations.
4. Restart services and access the Nagios web interface.
I would like to show you guys how easy is it to create a new VM from a base Ubuntu, configure and pack it again so you can distribute to your developers and also to the community.
Speed up the initial setup and have a homogeneous dev environment within your team!
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development tools for the Android platform. It begins with an introduction to Android architecture basics and the development environment. It then discusses tools for observing and monitoring systems, interfacing with frameworks, and working with AOSP sources. The document also covers symbolic debugging, dynamic data collection using tools like logging, strace, and ftrace, and benchmarking Android performance.
Similar to CloudOpen North America 2013: Vagrant & CFEngine (20)
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Zilliz
Join us to introduce Milvus Lite, a vector database that can run on notebooks and laptops, share the same API with Milvus, and integrate with every popular GenAI framework. This webinar is perfect for developers seeking easy-to-use, well-integrated vector databases for their GenAI apps.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
2. Before we get started
Is everyone in the right place?
Has everyone installed Virtualbox 4.2.16 or later?
VirtualBox --help | grep VirtualBox
Has everyone installed Vagrant 1.2.7 or later?
vagrant –version
I have USB keys with Installers and content for the tutorial,
if you don't have it yet please let me know.
3. Get to know each other
Hi, I'm Nick
SysAdmin > 10 Years
Work at CFEngine
Live in Lawrence, KS
Twitter: @cmdln_
IRC: nickanderson
Blog: http://www.cmdln.org
Who are you?
What do you do?
Have you used Vagrant?
Have you used CFEngine?
Why did you choose this
session and what do you
hope to get from it?
4. 9/17/13
What is Vagrant?
Tool to make working with
development environments
easy.
Create, configure, destroy
lightweight, reproducible,
and portable environments.
● Created by Mitchell Hashimoto
● @mitchelh
● http://www.vagrantup.com
5. 9/17/13
How can it help?
Developer on-boarding
Quickly provision/decommission test environments
in repeatable fashion
Bug Validation
Continuous Integration
Ad-hoc Demos
10. 9/17/13
Boxes
● Base operating system image
● Provider specific
● http://www.vagrantbox.es
● Use veewee or packer.io (build your own automatically)
– Kickstart/preseed, postinstall scripts
12. 9/17/13
Useful Plugin
● vagrant-vbguest automatically installs
the host's VirtualBox Guest Additions
on the guest system.
● vagrant plugin install vagrant-vbguest
● https://github.com/dotless-de/vagrant
-vbguest
13. 9/17/13
CFEngine Provisioner: Currently Undocumented
● am_policy_hub
●
extra_agent_args
– Extra arguments to pass to cf-agent executions
●
classes
– Additional classes to define when running cf-agent
● deb_repo_file
– The apt repository configuration file to use for configuring
the repository containing the CFEngine packages
● deb_repo_line
– The line that specifys the repository to use for CFEngine
packages
●
files_path
– Directory to copy on top of the default masterfiles
● force_bootstrap
– If true, bootstrap the host even if it has been bootstrapped
before
● install
– Install CFEngine package from repository
● mode
– “bootstrap” or “single_run”, determines whether CFEngine will
be bootstrapped or just executed once on the host
●
policy_server_address
●
repo_gpg_key_url
– http location of GPG key used for checking package signatures
●
run_file
– Standalone CFEngine policy file to upload and execute
●
upload_path
– Path to upload run_file
●
yum_repo_file
– The yum repository file to use when configuring the repository
containing CFEngine packages
●
yum_repo_url
– The url of the repository containing the CFEngine packages
●
package_name
– The cfengine package name to install
22. 9/17/13
CFEngine
● IT infrastructure automation, compliance, and
knowledge management framework
● Opensource and Commercial Software
● Originally written by Mark Burgess
● @markburgess_osl
● http://www.cfengine.com
23. 9/17/13
CFEngine History
● First released in 1993
● CFEngine 2 released in 1998, self healing
computer immunology. Added machine
learning and anomaly detection.
● 2003 Promise Theory work began
● 2008 CFEngine 3 released. Integrates
knowledge management and discovery
mechanisms.
31. 9/17/13
Get Going
● Import vagrant basebox
– cd resources/veewee
– vagrant box add CFEngine_Training CFEngine_Training.box
● Bring up environment
– vagrant status
– vagrant up
– vagrant status
34. 9/17/13
Using cf-sketch to configure infrastructure
● Log in to your policy hub, locate the
design center repository and access
the cf-sketch shell
– vagrant ssh hub
– sudo -i
– cd /vagrant/resources/design-center/tools/cf-sketch
– ./cf-sketch.pl
45. Before we get started
Is everyone in the right place?
Has everyone installed Virtualbox 4.2.16 or later?
VirtualBox --help | grep VirtualBox
Has everyone installed Vagrant 1.2.7 or later?
vagrant –version
I have USB keys with Installers and content for the tutorial,
if you don't have it yet please let me know.
46. Get to know each other
Hi, I'm Nick
SysAdmin > 10 Years
Work at CFEngine
Live in Lawrence, KS
Twitter: @cmdln_
IRC: nickanderson
Blog: http://www.cmdln.org
Who are you?
What do you do?
Have you used Vagrant?
Have you used CFEngine?
Why did you choose this
session and what do you
hope to get from it?
47. 9/17/13
What is Vagrant?
Tool to make working with
development environments
easy.
Create, configure, destroy
lightweight, reproducible,
and portable environments.
● Created by Mitchell Hashimoto
● @mitchelh
● http://www.vagrantup.com
Questions? Stop me
48. 9/17/13
How can it help?
Developer on-boarding
Quickly provision/decommission test environments
in repeatable fashion
Bug Validation
Continuous Integration
Ad-hoc Demos
50. 9/17/13
Portable
● VirtualBox
● AWS
● VMware
● More
● https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins
Take it with you (offline)
VirtualBox
Vmware
Use someone else's infrastructure
AWS
Rackspace
53. 9/17/13
Boxes
● Base operating system image
● Provider specific
● http://www.vagrantbox.es
● Use veewee or packer.io (build your own automatically)
– Kickstart/preseed, postinstall scripts
Veewee written by Patrick Debois
Packer.io written by Mitchell Hashimoto
Leverage your existing infrastructure. Use the same
(or very similar) kickstart/preseed and postinstall
scripts that you use in your production env.
54. 9/17/13
Magic
● Ssh port forwards
● Shared project folder /vagrant
Automatically forwards Local port to 22
on the host
Automatically mounts the directory that
the Vagrantfile lives in (Vagrant Project
Dir) on each host.
Add your own custom
Problems with automagic? Check the
tools version. Not required to match but
it helps
55. 9/17/13
Useful Plugin
● vagrant-vbguest automatically installs
the host's VirtualBox Guest Additions
on the guest system.
● vagrant plugin install vagrant-vbguest
● https://github.com/dotless-de/vagrant
-vbguest
● Sometimes there are issues if the
version of virtualbox tools does not
match the currently running version.
● This plugin will detect if the guest tools
are outdated, download build, install,
restart the guest
● If you're lucky, vagrant-vbguest does
not require any configurations.
56. 9/17/13
CFEngine Provisioner: Currently Undocumented
● am_policy_hub
● extra_agent_args
– Extra arguments to pass to cf-agent executions
●
classes
– Additional classes to define when running cf-agent
●
deb_repo_file
– The apt repository configuration file to use for configuring
the repository containing the CFEngine packages
● deb_repo_line
– The line that specifys the repository to use for CFEngine
packages
● files_path
– Directory to copy on top of the default masterfiles
● force_bootstrap
– If true, bootstrap the host even if it has been bootstrapped
before
●
install
– Install CFEngine package from repository
●
mode
– “bootstrap” or “single_run”, determines whether CFEngine will
be bootstrapped or just executed once on the host
● policy_server_address
● repo_gpg_key_url
– http location of GPG key used for checking package signatures
● run_file
– Standalone CFEngine policy file to upload and execute
●
upload_path
– Path to upload run_file
●
yum_repo_file
– The yum repository file to use when configuring the repository
containing CFEngine packages
● yum_repo_url
– The url of the repository containing the CFEngine packages
● package_name
– The cfengine package name to install
The CFEngine provisioner is currently
undocumented. This is a great
opportunity for someone to contribute. I
already did part of the work right here in
this slide ;)
Options for
Package Source/install
Extra Arguments
Bootstrap or Standalone oneshot policy
58. 9/17/13
Getting started
● vagrant box
● vagrant init
● vagrant status
● vagrant up
● vagrant ssh
– vagrant ssh node
● vagrant destroy
59. 9/17/13
Daily Use
vagrant up
vagrant {destroy, halt, suspend}
!-2
There are more commands, but you use vagrant up
to bring up an environment, and vagrant destroy to
delete the vms.
63. Black Hole
There are so many places where configurations can
hide. I think of Vms as kind of a black hole of
knowledge.
64. 9/17/13
Automating Vagrant Provisioning
● Ansible
● CFEngine
● Chef
● Puppet
● Salt Stack
● Shell Scripts
● MixnMatch!
Automate configuration on top of base
image.
There are valid reasons for baking
config into a basebox, usually for speed
of deployment. Not a replacement for
good configuration management.
65. 9/17/13
CFEngine
● IT infrastructure automation, compliance, and
knowledge management framework
● Opensource and Commercial Software
● Originally written by Mark Burgess
● @markburgess_osl
● http://www.cfengine.com
66. 9/17/13
CFEngine History
● First released in 1993
● CFEngine 2 released in 1998, self healing
computer immunology. Added machine
learning and anomaly detection.
● 2003 Promise Theory work began
● 2008 CFEngine 3 released. Integrates
knowledge management and discovery
mechanisms.
CFEngine has a solid history. Its been around for 20 years.
Runs on over 10 million servers in over 10 thousand
companies
Promises are a declaration of intent
67. 9/17/13
CFEngine Properties
● Small
CFEngine is written in C
~ 100k lines of code (remember its a 20
year old project)
~ 5M single package install
~ 15-25M memory consumption
(depends on your policy of course)
68. 9/17/13
CFEngine Properties
● Small
● Secure (http://web.nvd.nist.gov/view/vuln/search)
Security is a core focus. The voluntary
cooperation principal of Promise Theory
and the pull model are important for this.
Great track record
CFEngine hasn't had a published
security vulnerability since 2005
(CFEngine 2)
0 since CFEngine 3 was released in
2009
69. 9/17/13
CFEngine Properties
● Small
● Secure (http://web.nvd.nist.gov/view/vuln/search)
● Portable
Because its written in C it runs on just about
anything.
Linux, BSDs, AIX, HPUX, Solaris
even Windows
Storage Devices (Qnap)
Switches (Cisco, Arista, Juniper)
Embedded Devices
Raspburry Pi
Robot bottom of the ocean
Water testing devices in fields with cows
Laser cutters (that make puppets)
70. 9/17/13
CFEngine Properties
● Small
● Secure (http://web.nvd.nist.gov/view/vuln/search)
● Portable
● Resilient
CFEngine works when other things are broken.
CFEngine tries to fix itself – failsafe.cf
Decisions are made by the agents running on individual
hosts.
If the network is down they continue to apply the policy
they have. These policies can be extremely dynamic since
all decisions are made by the individual agent. They can
use external sources of information if desired or required.
Convergence – continual repair of system state toward
desired specification
If something can't be fixed track it and move on (usually)
If installing httpd fails, it could continue on and ensure that
SSH is hardened. Or if you desire all execution could stop
at that point.
71. 9/17/13
CFEngine Properties
● Small
● Secure (http://web.nvd.nist.gov/view/vuln/search)
● Portable
● Resilient
● Declarative
CFEngines policy language is declarative in nature.
This allows you to focus on the goals of how things should
be and converge towards this desired state.
It works kind of like a GPS. It doesn't matter where you
start, it will continually re-route to reach the destination.
For example
Apache promises to be installed on webservers. Not install
apache on host x,y,z
Httpd process promises to be running in production during
non maintenance hours
Sshd process promises to not be running, and completely
fire-walled off when the number of SSH sessions into or out
of a host are 3 standard deviations higher than normal
72. 9/17/13
CFEngine Properties
● Small
● Secure (http://web.nvd.nist.gov/view/vuln/search)
● Portable
● Resilient
● Declarative
CFEngines policy language is declarative in nature.
This allows you to focus on the goals of how things should
be and converge towards this desired state.
It works kind of like a GPS. It doesn't matter where you
start, it will continually re-route to reach the destination.
For example
Httpd config file promises to have this configuration for
hosts running application x
Httpd process promises to be running on web servers
Sshd process promises to not be running when the number
of SSH sessions into or out of a host are 3 standard
deviations higher than normal
73. 9/17/13
Bootstrap a test environment
Examine Vagrantfile
Shell provisioner to prep the environment for
offline use.
Dynamic multi-vm configuration
Host only network for vms to communicaate on
Forward ports
Synced files for hub masterfiles (normally, you
would update your masterfiles from a version
control repository)
CFEngine policy
Splay set to 0
Runs every minute (body executor control)
Emails root@localhost
Pre-written demo policy
74. 9/17/13
Get Going
● Import vagrant basebox
– cd resources/veewee
– vagrant box add CFEngine_Training CFEngine_Training.box
● Bring up environment
– vagrant status
– vagrant up
– vagrant status
We need to add it manually because
conference INTERNET
75. 9/17/13
More Nodes!
● Increase nodes in Vagrantfile
● vagrant up
● vagrant ssh node00{1,2}
Increase nodes to 1 or 2 (dependent on
resources)
Verify that you can ssh to them
Check out shared directory support
Look in /vagrant
Update a file from inside the vm, check
from workstation, vice versa
76. 9/17/13
CFEngine Design Center
● Community contributed reusable
policy
● Curated Repository
● Cli and GUI (enterprise) clients
When I am talking about paths to cfengine
configuration files in these examples they are relative
to masterfiles
So the synced vagrant directory is
resources/synced_masterfiles
Edit there and the policy will get synchronized to the
hubs masterfiles directory
77. 9/17/13
Using cf-sketch to configure infrastructure
● Log in to your policy hub, locate the
design center repository and access
the cf-sketch shell
– vagrant ssh hub
– sudo -i
– cd /vagrant/resources/design-center/tools/cf-sketch
– ./cf-sketch.pl
When I am talking about paths to cfengine
configuration files in these examples they are relative
to masterfiles
So the synced vagrant directory is
resources/overlay_var_cfengine/masterfiles
Edit there and the policy will get synchronized to the
hubs masterfiles directory
78. 9/17/13
Configure Timezones
● search time
● info -v tzconfig
● install System::tzconfig
● define paramset System::tzconfig
– Name: NO_Oslo_TZ
– Timezone: Europe/Oslo
– Zoneinfo: /usr/share/zoneinfo
You may want to have terminal open
79. 9/17/13
Configure Timezones
● search time
● install System::tzconfig
● define paramset System::tzconfig
– Name: NO_Oslo_TZ
– Timezone: Europe/Oslo
– Zoneinfo: /usr/share/zoneinfo
When I am talking about paths to cfengine
configuration files in these examples they are relative
to masterfiles
So the synced vagrant directory is
resources/overlay_var_cfengine/masterfiles
Edit there and the policy will get synchronized to the
hubs masterfiles directory
80. 9/17/13
Configure Timezones Cont.
● define paramset System::tzconfig
– Name: US_Central_TZ
– Timezone: US/Central
– Zoneinfo: /usr/share/zoneinfo
When I am talking about paths to cfengine
configuration files in these examples they are relative
to masterfiles
So the synced vagrant directory is
resources/overlay_var_cfengine/masterfiles
Edit there and the policy will get synchronized to the
hubs masterfiles directory
81. 9/17/13
Activate and Deploy Timezone Configuration
● activate System::tzconfig NO_Oslo_TZ hub
● activate System::tzconfig US_Central_TZ node001
● deploy
When I am talking about paths to cfengine
configuration files in these examples they are relative
to masterfiles
So the synced vagrant directory is
resources/overlay_var_cfengine/masterfiles
Edit there and the policy will get synchronized to the
hubs masterfiles directory
82. 9/17/13
Editor War!
● Which side are you on?
● services/editor_war.cf
Stop here, take a look at the file.
Who can tell what the policy is doing without having it
explained to them first?
83. 9/17/13
Wage War
● Remove Disallowed Packages
– vagrant ssh hub
– watch rpm -q emacs-nox
– Uncomment disallowed_packages to activate policy.
Watch it get fixed.
● Install Required Packages
– watch rpm -q vim-enhanced
– Uncomment required_packages to activate policy
How was this policy executed?
See body common control inputs and
bundlesequence.
Try playing around and manually
removing packages