Automated Installation with the Cobbler Provisioning Tool

Total Page:16

File Type:pdf, Size:1020Kb

Automated Installation with the Cobbler Provisioning Tool Cobbler BEFN$?FN 8lkfdXk\[`ejkXccXk`fen`k_k_\:fYYc\igifm`j`fe`e^kffc E<NJ?F<J Cobbler helps you install new systems in a hurry. We’ll show you how to use this nifty shoemaker to deploy Xen and VMware virtual machines. BY DAVID NALLEY f you try to install or upgrade several uniform environment and does not take article, I show you how to set up a Cob- computers at once, you will soon into account differences in hardware or bler provisioning system and take a look @discover that manual installation is a function. Also, the image gets out of at the provisioning of virtual machines huge time sink. Even if you are working date over time – with the constant ap- with Cobbler’s helper application Koan. with a checklist, it is often difficult to get pearance of updates, managing the im- Cobbler provides a framework for con- everything installed the same way every ages can become a full-time job. The figuring and managing: time. For this reason, most systems ad- more robust way of provisioning is by ฀ ฀฀฀฀ ministrators understand the importance automatically installing the operating ฀ ฀฀฀฀ of an automated install system. system each time, rather than relying on ฀ ฀฀฀ It’s no surprise that virtually every op- a predefined disk image. This method is ฀ ฀฀฀฀฀฀ erating system has the ability to auto- generally considered more challenging. daemon mate installations. What is curious, The Cobbler project [2], born at Red By managing all the configurations for given the necessity of such systems, is Hat and lead by Michael DeHaan, signifi- all services, Cobbler literally can run an that configuring automated installation cantly lowers the barrier for provisioning entire provisioning network from a sin- typically requires so much time and ef- in Linux. Cobbler is an all-encompassing gle box. Of course, you don’t have to use fort. In the past, automated installation framework for automated provisioning Cobbler to configure all these services required a fair amount of knowledge systems that provides a “soup-to-nuts” ฀฀฀฀฀฀฀ about networking, Pre-eXecutable Envi- solution, bringing together provisioning ronment (PXE), and, of course, the oper- prerequisites like DHCP and TFTP, pro- Table 1: Required Ports ating system itself. Those prerequisites viding management utilities for control- and Services represented a significant barrier to entry. ling software repositories, and offering Port Service Automated provisioning techniques up a framework to enable both a com- TCP 53 DNS have taken a number of forms over the mand-line and web interface for easy UDP 53 DNS years. The approach familiar to most management (Figure 1). UDP 68 DHCP people is taking a disk image of a system In addition to handling hardware- UDP 69 TFTP with the use of dd, PING (Partimage is based installs, Cobbler is proficient at TCP 80 HTTP not Ghost) [1], or another tool, then de- configuring virtual machines: You can UDP 25150 Remote syslog ploying that disk image anytime you provision a collection of Xen or KVM vir- TCP 25151 XMLRPC need it. Unfortunately, this solution tual machines as easily as a new hard- TCP 25152 XMLRPC doesn’t scale well because it relies on a ware-based server or workstation. In this JANUARY 2009 ISSUE 98 51 051-055_cobbler.indd 51 13.11.2008 18:41:30 Uhr BEFN$?FN Cobbler and DHCP servers if they are already present. In the event they aren’t, you can use Cobbler to manage the daemons and their configurations. Aside from letting you manage dae- mons, Cobbler provides a framework to mirror the installation framework from a DVD or an Internet repository. Addition- ally, Cobbler can mirror and keep cur- rent with third-party repositories. In the event that PXE booting isn’t an option, ฀฀฀฀฀฀฀ that will present the user with the same installation options that are presented to a machine that uses PXE. A single Cobbler command will down- load an operating system from the Inter- ฀฀฀฀฀฀ =`^li\)1<[`k`e^XB`ZbjkXikk\dgcXk\% and make the system ready for deploy- ment. Another command grabs all of the ent sets of packages and pushes differing the operating system is installed, you packages from an update repository. configuration files based on that logic. can set up Cobbler and its dependencies. Most discussions of Cobbler focus on For example, Cobbler allows you to push For the remainder of this article, I’ll as- its ease of use, but equally important is ฀฀฀฀฀฀ sume you plan to use Cobbler as an all- its power and flexibility. For instance, your development machines might get in-one provisioning system and that it Cobbler allows you to use snippets of ฀฀฀฀฀฀฀฀- ฀฀฀฀฀ code across many configuration files. If ers get a different set. Cobbler is available in the standard re- a snippet of code needs to be in multiple This example is just a simple demon- pository set with Fedora, but with RHEL Kickstart files, you can place it in one stration of the type of flexibility that ฀฀฀฀฀฀฀฀ file. The classic use for this feature is Cobbler has built in. Another feature repositories. To install Cobbler, enter: ฀฀฀฀฀฀฀- that is getting a lot of attention is Cob- ฀฀฀฀฀฀฀฀ bler’s integration with configuration yum install cobbler httpd 5 Rather than being limited to simple in- management systems such as Puppet. dhcp bind tftp-server cludes, Cobbler has the power to dynam- ically insert code snippets so you can @ejkXcc`e^:fYYc\i ฀฀฀฀฀฀฀ programmatically change the configura- Although packages are available for Cob- need to configure it so that Cobbler can tion on the basis of the type of machine, bler in Debian and Ubuntu, they are still serve up the dynamically configured function of machine, IP address, or a very much in development. At the time Kickstart files: host of other factors. This approach al- of this writing, a machine with Fedora 8 lows you to have a single Kickstart file ฀฀฀฀฀฀฀฀฀฀ setsebool -P 5 with embedded logic that deploys differ- be a better candidate for Cobbler. Once httpd_can_network_connect true If you change the /etc/cobbler/settings file to contain the following settings, Cobbler will manage configuration and ฀฀฀฀฀฀฀- lation client. The server and next_server settings relate to PXE booting and are used in configuring DHCP and defining where machines should look to get boot information. In this case, the cobbler server has the address 192.168.1.5: manage_dhcp: 1 manage_dns: 1 next_server: '192.168.1.5' server: '192.168.1.5' If you use an address other than =`^li\(1:fYYc\iZfd\jn`k_Xefgk`feXcn\Y$YXj\[`ek\i]XZ\% 192.168.1.5, modify /etc/cobbler/dhcp. 52 ISSUE 98 JANUARY 2009 051-055_cobbler.indd 52 13.11.2008 18:41:33 Uhr Cobbler BEFN$?FN template appropriately to match the net- Listing 1: Cobbler’s Configuration Check work you have chosen. If you don’t do 01 [root@nalleyt61 ~]# cobbler check 09 #3: One or more kickstart this, machines will unsuccessfully at- 02 The following potential problems 10 templates references default tempt to PXE boot to the 192.168.1.5 03 were detected: 11 password 'cobbler' and should address, and machines booted with a 04 #0: service cobblerd is not running 12 be changed for security reasons ฀฀฀฀ will vainly attempt to reach installation 05 #1: service httpd is not running 13 : /etc/cobbler/sample.ks, repositories on 192.168.1.5. 06 #2: since iptables may be running, 14 /etc/cobbler/legacy.ks, In /etc/cobbler/named.template, you’ll 07 ensure 69, 80, 25150, and 25151 are 15 /etc/cobbler/sample_end.ks want to set the listen_on variable to 08 unblocked match the IP address of the Cobbler server. This step defines one of the few One of the interesting features of Cob- cobbler reposync information items Cobbler needs to con- bler is that it provisions systems dynami- ฀฀฀฀฀฀฀ cally based on the latest packages. This For a home setup or installfest, you course, it instructs the bind configura- means that if Cobbler knows about an might disregard the following setting, ฀฀฀฀฀฀฀฀฀ update repository, it will install the latest but if Cobbler will be running in a large ฀฀฀ updated packages in that repository. lab or in a corporate environment, you This can save lots of time by eliminating will want to point your installed ma- listen-on port 53 5 post-install updates, particularly if it has chines at the repositories Cobbler is now { 192.168.1.5; }; been a long while since the distribution keeping locally. This allows you to main- was released. Also, you are not limited tain a local update repository and update If you are using a firewall, make sure to update repositories; you could just as all of your machines based on that re- you open the ports shown in Table 1. easily use a repository for Dell’s Open- pository. You can change this setting in ฀฀฀฀฀ /etc/cobbler/settings to match: >\kk`e^k_\9`kj packages or some other third-party re- Now it is time to import the first distri- pository. yum_post_install_mirror: 1 bution. Cobbler makes this an easy, one- To define an update repository, use the command step, with only two argu- cobbler repo add command, assign the Cobbler uses the concept of a profile to ments: the name you assign to the distri- repository a name, and then specify the define a collection of common configura- bution and the location of the installa- location: tion settings. A Cobbler profile consists tion data. The installation files can be of a distribution, optionally one or more pulled from install media or from the cobbler repo add 5 additional repositories, and the installa- Internet. --name=F9-updates tion configuration file.
Recommended publications
  • Compass – a Streamlined Openstack Deployment System
    2013年11月7日星期四 Compass – A Streamlined OpenStack Deployment System Shuo Yang Principal Architect of Cloud Computing, US R&D Center Outline of This Talk 1 Scope of Problem for Compass 2 Compass Explained 3 DRY, Truly Open Deployment 1 Compass at a Glimpse Think Big, Start Small A General System to Deploy Distributed Systems, Extensibility as a Primary Design Goal Not Limited to OpenStack, but Streamlined Our OpenStack Deployment Like a Charm To Be Open Sourced – Apache 2.0 Soon 100% Python, 5000 Line of Python Code Successfully Deployed Several Dogfood Clusters Compass Wiki Page: https://wiki.openstack.org/wiki/Compass 2 Data Center as a Computer Open Cloud OS (OpenStack) Open Deployment (Compass) OpenStackLinux Quantumeth0, lo Nova/proc Cinder/dev Live Auto CD / Deploy GRUB NIC CPU Disk SwitchSwitchSwitch CPUCPUServer DiskStorage NIC CPU Disk (5020) (2285/1285) (N8000/N900) OpenStack Control Channel LILO/GRUB/LiveCD for OpenStack HW/SW Configuration Deployment Channel 3 Why We Are Doing This? Full HW Portfolio in Data Center No.1 as Storage Revenue Growth No. 2 as `x86 Server Revenue Growth Needless to Say, Networking Gears.. OpenStack Makes the Above a Full Global Excellent Telecom Cloud Solution Cloud Solution Provider of year 2012 4 OpenStack Deployment System Overview Crowbar TripleO (“under the cloud” mode) Pioneer effort, a Ruby web app, Chef based Attractive concept to OpenStack folks: configuration management deploy OpenStack from OpenStack Fuel DevStack A great web apps, Puppet based A great tool for simple OpenStack
    [Show full text]
  • Red Hat Satellite 6.3 Architecture Guide
    Red Hat Satellite 6.3 Architecture Guide Planning Satellite 6 Deployment Last Updated: 2019-04-16 Red Hat Satellite 6.3 Architecture Guide Planning Satellite 6 Deployment Red Hat Satellite Documentation Team [email protected] Legal Notice Copyright © 2019 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Automating the Enterprise with Ansible
    AUTOMATING THE ENTERPRISE WITH ANSIBLE Dustin Boyd Solutions Architect September 12, 2017 EVERY ORGANIZATION IS A DIGITAL ORGANIZATION. Today, IT is driving innovation. If you can’t deliver software fast, your organization can’t meet the mission, period. Digital organizations are essentially software. If they expect to thrive in a digital environment, they must have an improved competence in software delivery. Gartner 2015 2 COMPLEXITY KILLS PRODUCTIVITY. Complexity is the enemy of innovation, which is why today’s enterprises are looking to automation and DevOps tools and practices. DevOps can help organizations that are pushing to implement a bimodal strategy to support their digitalization efforts. Gartner 2015 3 WHEN YOU AUTOMATE, YOU ACCELERATE. Ansible loves the repetitive work your people hate. It helps smart people do smarter work. All with fewer errors and better accountability. Automation can crush complexity and it gives you the one thing you can’t get enough of… time. 4 “Ansible delivers DevOps to a broader class of enterprise users that include those inside the business units and teams where agile practices and fast provisioning of infrastructure are in demand.” JAY LYMAN, 451 RESEARCH – NOV 2013 GARTNER COOL VENDOR 2015 “Previous vendors in this [DevOps] market often require unique programming skills. Ansible’s simple language reduces the barrier to adoption and opens it up to a variety of skill sets…” 5 AUTOMATION = ACCELERATION “With Ansible Tower, we just click a button and deploy to production in 5 minutes. It used to take us 5 hours with 6 people sitting in a room, making sure we didn’t do anything wrong (and we usually still had errors).
    [Show full text]
  • Cobbler Provider
    Cobbler Provider The Cobbler provider is used to interact with a locally installed Cobbler (http://cobbler.github.io) service. The provider needs to be congured with the proper credentials before it can be used. Use the navigation to the left to read about the available resources. Example Usage provider "cobbler" { username == "${var.cobbler_username}" password == "${var.cobbler_password}" url == "${var.cobbler_url}" } resource "cobbler_distro" "ubuntu-1404-x86_64" { } Argument Reference The following arguments are supported: username - (Required) The username to the Cobbler service. This can also be specied with the COBBLER_USERNAME shell environment variable. password - (Required) The password to the Cobbler service. This can also be specied with the COBBLER_PASSWORD shell environment variable. url - (Required) The url to the Cobbler service. This can also be specied with the COBBLER_URL shell environment variable. insecure - (Optional) Ignore SSL certicate warnings and errors. This can also be specied with the COBBLER_INSECURE shell environment variable. cacert_file - (Optional) The path or contents of an SSL CA certicate. This can also be specied with the COBBLER_CACERT_FILE shell environment variable. cobbler_distro Manages a distribution within Cobbler. Example Usage resource "cobbler_distro" "ubuntu-1404-x86_64" { name == "foo" breed == "ubuntu" os_version == "trusty" arch == "x86_64" kernel == "/var/www/cobbler/ks_mirror/Ubuntu-14.04/install/netboot/ubuntu-installer/amd64/linux" initrd == "/var/www/cobbler/ks_mirror/Ubuntu-14.04/install/netboot/ubuntu-installer/amd64/initrd.gz" } Argument Reference The following arguments are supported: arch - (Required) The architecture of the distro. Valid options are: i386, x86_64, ia64, ppc, ppc64, s390, arm. breed - (Required) The "breed" of distribution. Valid options are: redhat, fedora, centos, scientic linux, suse, debian, and ubuntu.
    [Show full text]
  • Cobbler Documentation Release 3.0.1
    Cobbler Documentation Release 3.0.1 Enno Gotthold May 27, 2020 Contents 1 Quickstart 3 1.1 Preparing your OS..........................................3 1.2 Changing settings..........................................3 1.3 DHCP management and DHCP server template...........................4 1.4 Notes on files and directories....................................5 1.5 Starting and enabling the Cobbler service..............................5 1.6 Checking for problems and your first sync..............................5 1.7 Importing your first distribution...................................6 2 Install Guide 9 2.1 Prerequisites.............................................9 2.2 Installation.............................................. 10 2.3 RPM................................................. 10 2.4 DEB................................................. 11 2.5 Relocating your installation..................................... 12 3 Cobbler CLI 13 3.1 General Principles.......................................... 13 3.2 CLI-Commands........................................... 14 3.3 EXIT_STATUS............................................ 24 3.4 Additional Help........................................... 24 4 Cobblerd 25 4.1 Preamble............................................... 25 4.2 Description.............................................. 25 4.3 Setup................................................. 26 4.4 Autoinstallation (Autoyast/Kickstart)................................ 26 4.5 Options................................................ 26 5 Cobbler Configuration
    [Show full text]
  • Cobbler Documentation Release 2.8.5
    Cobbler Documentation Release 2.8.5 Jörgen Maas Nov 19, 2020 Contents 1 About 3 1.1 Release Notes.........................................3 1.2 Distribution Support......................................5 1.3 Distribution Notes.......................................7 1.4 How We Model Things..................................... 13 2 Installation 15 2.1 Prerequisites.......................................... 15 2.2 Installing from packages.................................... 16 2.3 Installing from Source..................................... 18 2.4 Configuration Files....................................... 20 2.5 Relocating your installation.................................. 21 3 General 23 3.1 Cobbler Primitives....................................... 23 3.2 Cobbler Direct Commands................................... 54 3.3 Cobbler Settings........................................ 69 3.4 Managing Services with Cobbler............................... 90 3.5 Kickstart Templating...................................... 94 3.6 Snippets............................................ 102 3.7 Package Management and Mirroring............................. 112 3.8 File System Information.................................... 114 4 Advanced 119 4.1 Advanced Networking..................................... 119 4.2 SELinux............................................ 122 4.3 Configuration Management.................................. 123 4.4 Extending cobbler....................................... 131 4.5 Power Management...................................... 135 4.6
    [Show full text]
  • Building and Managing Virtual Machines at the Tier 1
    BuildingBuilding andand managingmanaging virtualvirtual machinesmachines atat thethe TierTier 11 Jason A. Smith, John DeStefano, James Pryor System Workflow: From new unconfigured to fully configured & monitored Install New System PXE boot Cobbler RHEL via system w/ Powered off network install Server kickstart. RHEL Install puppet Reboot Fresh booted FusionInventory Manually tell Contact Puppet system w/ Agent reports on Asset Mgmt GLPI to assign system w/ server Puppet RHEL system's assets Service puppet classes Puppet classes Server send catalog to puppet client Puppet configures & Reports back to system w/ makes changes System server via puppet's Puppet Puppet catalog system via catalog Configured exported resources Server The puppet server gives the Nagios server a new Now Nagios knows about the new machine System config catalog. Nagios & service and will automatically begin to Server monitor it. Configured & monitored CobblerCobbler provisioningprovisioning systemsystem System Provisioning Cobbler & Koan Cobbler is provisioning tool-set that allows for rapid setup & installation of systems through the network. It has both a web GUI and a command line interface. Provisioning with Cobbler: ● Just about all non-LinuxFarm machines are PXE booted & provisioned with Cobbler and it's companion tool koan. ● We use Cobbler as the PXE boot kickstart source for RPM packages. ● During post-install of the kickstart, we register the machine against the local Red Hat Satellite. It becomes the sole repo for packages & updates. ● Satellite allows
    [Show full text]
  • Deployment of Compute Nodes for the WLCG with Cobbler, Ansible and Salt
    Deployment of compute nodes for the WLCG with Cobbler, Ansible and Salt. Damien François, Olivier Mattelaer, Thomas Keutgen HEPiX meeting, October 20 !, "arcelona, #$ain Center for High Performance Computing and Mass Storage ')#M T2%"E%&'( Manneback+)ngrid cluster grows organically ; 1 to 10 machines at a time now 6000+ cores, Gb+10Gb 100 local users + CMS grid users, ~2 M jobs per year Manneback/Ingrid cluster -e started “manuall/0111 check-list shell script config. management make persistent make actionable make idempotent 111 and graduall/ im$rove, automation, and ,ocumentation1 -e settled on three tools 2or the provisioning o2 ne3 nodes Unboxing ● Label, rack, connect ● Choose Name, IP ● Gather MAC 1. Deploy 2. Integrate 3. Confgure Ready for jobs “Cobbler is a Linux installation server that allows for rapid setup of network installation environments.” http://cobbler.github.io Wrapper for PXE, TFTP, DHCP servers Manage OS images, machine profiles Install operating system Setup hardware-specifc confguration (disk partitions, NICs, IPMI, etc.) Setup minimal confguration (Admin SSH keys, Salt minion) “Ansible seamlessly unites workflow orchestration with configuration management, provisioning, and application deployment in one easy-to-use and deploy platform.” https://www.ansible.com Shell scripts on steroïds with builtin safety, idempotence, APIs One-off operations register to Zabbix, GLPI, Salt build files: - slurm.conf for Slurm, - /etc/hosts for dnsmasq, - /etc/ssh/ssh_known_hosts create CPU-specific directory for Easybuild “Scalable, flexible, intelligent IT orchestration and automation” https://saltstack.com Central configuration management server Daily management configure system: NTP, DNS, LDAP, Slurm, etc. install admin software, cvmfs, yum repos, etc. mount user filesystems, cvmfs, etc.
    [Show full text]
  • Fedora 10 Installation Guide
    Fedora 10 Installation Guide Stuart Ellis Paul W. Frields Fedora 10 Installation Guide by Stuart Ellis and Paul W. Frields Version 9.92 (2008-10-18) Copyright © 2006, 2007, 2008 Red Hat, Inc.Stuart EllisPaul W. Frields Permission is granted to copy, distribute, and/or modify this document under the terms of the Open Publication Licence, Version 1.0, or any later version. The terms of the OPL are set out below. REQUIREMENTSI. ON BOTH UNMODIFIED AND MODIFIED VERSIONS Open Publication works may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference (with any options elected by the author(s) and/or publisher) is displayed in the reproduction. Proper form for an incorporation by reference is as follows: Copyright (c) <year> by <author's name or designee>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://www.opencontent.org/openpub/). The reference must be immediately followed with any options elected by the author(s) and/or publisher of the document (see section VI). Commercial redistribution of Open Publication-licensed material is permitted. Any publication in standard (paper) book form shall require the citation of the original publisher and author. The publisher and author's names shall appear on all outer surfaces of the book. On all outer surfaces of the book the original publisher's name shall be as large as the title of the work and cited as possessive with respect to the title.
    [Show full text]
  • Integrating with Cobbler
    Integrating with Cobbler Jesus M. Rodriguez Principal Software Engineer Red Hat What is Cobbler? ● A Linux installation server for rapid setup of network install environments ● Can manage ● DHCP ● DNS ● yum repos Objects ● distro ● profile ● system ● repo – package repository for mirroring (optional) ● Image – virt guest image API ● login ● get_{object*(s)} e.g. get_distro, get_profiles ● find_{object*} ● get_{object*}_handle ● remove_{object*} ● copy_{object*} ● rename_{object*} ● new_{object*} ● modify_{object*} ● save_{object*} Language bindings ● Java via cobbler4j ● cobbler4j directory of cobbler checkout ● Ruby via rubygem-cobbler ● contrib/ruby of cobbler checkout ● XML-RPC cobbler4j ● Each cobbler object has a mirror in cobbler4j ● Distro, Profile, Repo, Image, SystemRecord ● Auto-generated from python api ● Operate on the object not the connection ● Requires cobbler 2.0 as it uses xapi_object_edit ● Seeded from Spacewalk code ● Developed because XML-RPC from Java is a pain (as are many things) cobbler4j example XML-RPC ● Cobbler can also be controlled by basic XML- RPC calls ● Most languages have an XML-RPC library ● Python – xmlrpclib ● Perl – FrontierRPC ● Java – Redstone XML-RPC & Apache XML-RPC ● Ruby - xmlrpc python via XML-RPC example Integration Strategies ● Standalone ● Master ● Slave ● Synchronization required Standalone ● Simply use Cobbler as a provisioning service ● Cobbler handles everything ● PXE ● DHCP ● DNS ● Some light integration via scripts Master ● Store all system & provisioning data in Cobbler ● Optionally
    [Show full text]
  • Nested Virtualization Environments
    Deploy and test oVirt using nested virtualization environments Mark Wu [email protected] 1 Agenda ● Nested KVM ● Kickstart & Cobbler ● Kickstart files for VMs ● Install and clone oVirt VMs ● Integration test with Igor ● Q & A 2 Nested Virtualization ● Running multiple unmodified hypervisors with their associated unmodified VM’s ● Why? ● Operating systems are already hypervisors (Windows 7 with XP mode, Linux/KVM) ● To be able to run other hypervisors in clouds ● Live migration of hypervisors and their vms ● Testing, demonstrating, debugging hypervisors and virtualization setups 3 Nested VMX ● Merged in kernel 3.1 ● No hardware support L1 L2 Guest OS ● Multiplex hardware Guest Hypervisor ● Follows the “trap and Memory VMCS emulate” model Table 1-2 State 0-1 State ● Flow: Memory Memory VMCS VMCS 0-2 State ● L0 intercepts the 'vmlaunch' Table Table instruction which L1 execute to run L2 L0 Host Hypervisor ● L0 generates VMCS0-2 by merging VMCS1-2 and Hardware VMCS0-1 and then launches L2 4 How to enable nested KVM? (For VMX) ● Enable the nested switch of kvm_intel.ko ● enable it at runtime ● modprobe -r kvm_intel ● modprobe kvm_intel nested=1 ● Verify ● $cat /sys/module/kvm_intel/parameters/nested => Y ● Persist the change ● echo “options kvm-intel nested=1″>/etc/modprobe.d/kvm- intel.conf ● Qemu command line ● qemu -cpu host ● qemu -cpu qemu64,+vmx 5 How to enable nested KVM? (cont'd) ● Libvirt XML ● Use host CPU model <cpu mode='host-model'/> ● Specify a CPU model <cpu match='exact'> <model>core2duo</model> <feature policy='require'
    [Show full text]
  • Ansible & TOSCA Essentials
    Ansible & TOSCA Essentials Doina Cristina Duma (aiftim<at>infn.it) Alessandro Costantini (acostantini<at>infn.it) Big Data Analytics 9-12 Dic. 2019, Bologna This work is licensed under a Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International license Outline • What is, how it works, architecture • Key components • Ad-hoc commands • Roles, their structure • Ansible-Galaxy & Galaxy, Roles use and re-use • Playbooks & roles • Advanced usage (cenni): debug, optimization D.C. Duma 2 Bit…s of History • «Ansible» Ø1966 – Ursula K. Le Guin, «Rocannon’s World» Ø«answerable»: device that allow its users to receive answers to their messages in a reasonable amount of time, even over interstellar distances Ø1977,1985 – Orson Scott Card, «Ender’s Game» Ø«Philotic Parallax Instantaneous Communicator»: machine capable of communicating across infinite distances with no time delay Ø2012 - Michael DeHaan , RH Emerging Technlogies: «work on basically whatever they thought people needed» ØCobbler & Func ØAnsibleWorks, Inc. => Ansible, Inc. => RedHat (2015) Ø«a simple deployment, model-driven configuration management, and command execution framework» D.C. Duma 3 What is? «Ansible is an automation and configuration management technology used to provision, deploy, and manage compute infrastructure across cloud, virtual, and physical environments» ØAutomation language that can describe an IT application infrastructure, in Ansible Playbooks => YAML ØAutomation Engine that runs Ansible Playbooks D.C. Duma 4 (YAML = YAML Ain't Markup Language) - Human friendly (readble) data-serialization standard for all programming languages - Can be used with nearly any application that needs to store or transmit data - Flexible = bits and pieces from other languages: - Scalars, lists, associative arays <- Perl - Document separator, «—» <- MIME - Whitespace wrapping <- HTML - Escape sequences <- C - uses both Python-style indentation to indicate nesting - Superset of JSON - uses [] for lists and {} for maps D.C.
    [Show full text]