All right, so let's talk about Cloud-init. Now, Cloud-init is a widely used activation engine technology. It can obtain configuration data in a number of ways. Power VC provides a configuration drive to pass the information to Cloud-init, a configuration driver, config drive, you want to remember that. It's done through the assignment of a virtual optical drive where the configuration file was passed through that optical drive. It's config-drive, it's a drive actually. Power VC relies on the use of this virtual machine initialization service technology to properly configure and deploy a virtual machine image. That's how we would say this officially. The way I would say it informally is, power VC relies on Cloud-init to do post deploy VM customization. That's what we're talking about here. The deployment occurs, you want to be able to customize the newly deployed VM, so that it's unique, and so that maybe it has some characteristics that the original image that you deployed it from did not have. Cloud-init is the most common initialization service or post deploy tool use by Cloud providers. It is the de-facto multi distribution package and it handles early initialization of a Cloud instance. The configuration file that's used by Cloud-init is called Cloud config, that's Cloud.cfg. This is where you specify parameters for configuration during the virtual machine deployment, right after it's deployed. Now, the Cloud config [inaudible] is written in the YAML datalisation format. The YAML format was created to be easy to understand for humans and easy to parse for programs. Cloud-init itself is written in Python. We're going to see some of the ramifications of that when we get to AIX installation piece. It's installed on a virtual machine that's going to be captured as an image, then, that image will turn out to be deployed, then that's when the Cloud-init code will be invoked. Cloud-init will identify the Cloud it's running on during boot, read any provided metadata, then config drive, and then initialize the system accordingly. Now, there's a lot of documentation on Cloud-init. You can find that at Cloud-init.readthedocs.io. It's exactly what it sounds like, Cloud-init.readthedocs.io. I've read quite a bit of that and it's very useful. The goal of the Cloud initialization service is to bootstrap a Cloud instance to what's needed by the deployment. I mentioned previously that Cloud-init configured using a file called Cloud config. Now, the Cloud config is in the locations shown in the graphic depending on the operating system. The Cloud config configuration file has three actions sections. The first section, one I worked with the most, is called the Cloud-init module. This tells Cloud-init to run specific modules when the Cloud-init script is invoked at boot time. For instance, setting the host name of the machine, and resetting the RMC configuration. The second section is called the Cloud config module. It tells Cloud-init to run specific modules when the Cloud config script is called. Then the last section is the Cloud final module, it tells Cloud-init to run specific modules when the Cloud final script is called. As always, an example can be useful in understanding something like this. The graphic here shows lines of the Cloud config file. The file has some top-level directives like users, disabled root, etc. These serve as keys. The values of these keys consist of all of the indented lines after the keys. In the case of the users key, the value is a single list item. We know this because the next level of indentation is a dash, which specifies the list item. Because there is only one dash at this indentation level. Now in case of the users directive, default indicates the default user of the distribution be added, say root. You may define any of your new users that you want below this line beginning with a dashed name colon and then user name key-value pair. Now, the file contains an associative array with more key value pairs. Now, these are sibling elements because they all exist at the same level of indentation. If you wanted to define new user attributes, for example, they will be contained within the single list item as we described above. Other things to note are that the strings that you see do not require quoting and there are no unnecessary brackets to define any of these associations. The interpreter can determine the data type fairly easily, and the indentation indicates the relationship of items both for humans and for programs. This file is using YAML. That concludes the Cloud-init concepts lesson. In the following lessons, what I'm going to go over is installing Cloud-init on Linux and AIX.