User Tools

Site Tools


maas

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
maas [2015/11/25 22:29]
gsamfira
maas [2016/12/16 12:11] (current)
sgiulitti
Line 13: Line 13:
 This should be the case for all other hypervisors as well. Also, if using KVM/QEMU make sure that the block device controllers are IDE or SATA, unless you have bundeled virtio drivers when creating the PXE installation media. This should be the case for all other hypervisors as well. Also, if using KVM/QEMU make sure that the block device controllers are IDE or SATA, unless you have bundeled virtio drivers when creating the PXE installation media.
  
-If you plan on deploying MaaS on Hyper-V using Generation 2 images, you will need to patch grubx64.efi located in:+If you plan on deploying MaaS on Hyper-V using Generation 2 images, you will need to disable secure boot in VMs and patch grubx64.efi located in:
  
 ``` ```
Line 19: Line 19:
 gunzip grubnetx64.efi.gz gunzip grubnetx64.efi.gz
 cp grubnetx64.efi /var/lib/maas/boot-resources/current/grubx64.efi cp grubnetx64.efi /var/lib/maas/boot-resources/current/grubx64.efi
 +```
 +
 +or get the Ubuntu 16.10 grub2 version:
 +
 +```
 +wget http://archive.ubuntu.com/ubuntu/dists/yakkety/main/uefi/grub2-amd64/2.02~beta2-36ubuntu11/grubnetx64.efi \
 +    -O /var/lib/maas/boot-resources/current/grubx64.efi
 ``` ```
      
 Follow this article to [compile GRUB with Generation 2 VM support](http://wiki.cloudbase.it/hyperv-uefi-grub) Follow this article to [compile GRUB with Generation 2 VM support](http://wiki.cloudbase.it/hyperv-uefi-grub)
 +
 +**NOTE: this will be overwritten by maas every time something changes in boot images (eg: upload new image, maas updates images from simplestreams)**
  
 ##Prerequisite ##Prerequisite
 ###Machine 1 – MAAS Controller ###Machine 1 – MAAS Controller
-* Ubuntu 14.04 Server w/ two NIC's (1 external, 1 private).+* Ubuntu 16.04 Server w/ two NIC's (1 external, 1 private).
 * The external is connected to the internet, the private will be used for MAAS deployment. * The external is connected to the internet, the private will be used for MAAS deployment.
 +
 +###Note
 +Ubuntu doesn't come with the standard naming interfaces like eth0 eth1 anymore
 +instead you will see ens3 ens9 because of systemd renaming those.
 +Let's assume the ens3 is the primary one and ensp5s the second one.
  
 *Example interface configuration:* *Example interface configuration:*
 ```bash ```bash
-# The primary network interface (external) +# This file describes the network interfaces available on your system 
-auto eth0 +# and how to activate them. For more information, see interfaces(5). 
-iface eth0 inet dhcp+ 
 +source /etc/network/interfaces.d/
 + 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + 
 +# The primary network interface 
 +auto ens3 
 +iface ens3 inet static 
 + address 192.168.122.157 
 + netmask 255.255.255.0 
 + gateway 192.168.122.1 
 + dns-nameservers 8.8.8.8 8.8.4.4 
 + 
 +# The secondary network interface 
 +# This is used for internal maas only 
 +auto ens9 
 +iface ens9 inet static 
 + address 10.10.10.10 
 + netmask 255.255.255.0
  
-# The secondary NIC (used internal for MAAS) 
-auto eth1 
-iface eth1 inet static 
-address 192.168.1.1 
-netmask 255.255.255.0 
 ``` ```
  
Line 52: Line 81:
 ##Preparing MAAS Controller ##Preparing MAAS Controller
  
-###Install Ubuntu 14.04 server+###Install Ubuntu 16.04 server
 Basic install Basic install
  
Line 61: Line 90:
 sudo apt-get update sudo apt-get update
 sudo apt-get upgrade sudo apt-get upgrade
 +sudo apt-get dist-upgrade
 +sudo apt-get install openssh-server vlan
 sudo apt-get install software-properties-common -y sudo apt-get install software-properties-common -y
-sudo add-apt-repository ppa:maas-maintainers/stable -y+sudo add-apt-repository ppa:maas/stable -y
 sudo apt-get update sudo apt-get update
 ``` ```
Line 70: Line 101:
   
 ```bash ```bash
-sudo apt-get install maas maas-dhcp -y+sudo apt-get install maas maas-dns maas-dhcp maas-proxy -y
 ``` ```
 +
 +NOTE: When asked for the Ubuntu MAAS API address, double check the detected URL uses ens3’s (external) IP address: http://192.168.122.157/MAAS/.
 +You can later change this by running:
 +```bash
 +sudo dpkg-reconfigure maas-rack-controller
 +```
 +Also, double check that running
 +```bash
 +sudo dpkg-reconfigure maas-region-controller
 +```
 +shows the IP address of ensp5s (managed NIC), if not set it to 10.10.10.10!
 +
 +
  
 ###Configure firewall and enable ip forwarding ###Configure firewall and enable ip forwarding
Line 88: Line 132:
 sysctl -p sysctl -p
 ``` ```
-In this example eth0 is the public interface and eth1 is the private one+In this example ens3 is the public interface and ens9 is the private one
  
 ### Create admin user ### Create admin user
Line 94: Line 138:
   
 ```bash ```bash
-sudo maas-region-admin createadmin --username root --email user@server.com+# maas 2.0 
 +sudo maas-region createsuperuser
 ``` ```
  
Line 118: Line 163:
 Edit the default cluster and enable DHCP and DNS on the interface where you will be serving DHCP (see the screenshot as an example). Edit the default cluster and enable DHCP and DNS on the interface where you will be serving DHCP (see the screenshot as an example).
  
-Open `http://<maas-server-ip>/MAAS/clusters/` in a browser; **eth1** is most probably the one that needs to be configured.+Open `http://<maas-server-ip>/MAAS/clusters/` in a browser; **ens9** is most probably the one that needs to be configured.
   
 *Example:* *Example:*
-Router IP = eth1's IP* +Router IP = ens9's IP* 
-IP = eth1's IP+IP = ens9's IP
  
 ![Screenshot](http://wiki.cloudbase.it/_media/screen_shot_2014-04-23_at_01.27.08.png) ![Screenshot](http://wiki.cloudbase.it/_media/screen_shot_2014-04-23_at_01.27.08.png)
  
 +### How to configure MAAS to be able to boot virtual machines with virsh
 +
 +The libvirt-bin package needs to be installed to get the virsh command
 +```bash
 +sudo apt-get -y install libvirt-bin
 +```
 +If you want to use ssh you'll need to generate a ssh key pair for the maas user. 
 +By default there is no home directory created for the maas user.
 +```bash
 +sudo mkdir -p ~maas
 +sudo chown maas:maas ~maas
 +```
 +Add a login shell for the maas user (we'll only need this for the ssh-copy-id command later; 
 +if you're putting ssh keys in place manually or using a different mechanism, this step isn't strictly needed):
 +```bash
 +sudo chsh -s /bin/bash maas
 +```
 +
 +Generate a SSH keypair as the maas user (hit enter three times to accept the default path and empty password):
 +```bash
 +sudo -u maas ssh-keygen
 +Generating public/private rsa key pair.
 +Enter file in which to save the key (/home/maas/.ssh/id_rsa): 
 +Created directory '/home/maas/.ssh'.
 +Enter passphrase (empty for no passphrase): 
 +Enter same passphrase again: 
 +Your identification has been saved in /home/maas/.ssh/id_rsa.
 +Your public key has been saved in /home/maas/.ssh/id_rsa.pub.
 +```
 +Then add the public key to ~ubuntu/.ssh/authorized_keys on the vm server so virsh can use ssh without a password:
 +```bash
 +sudo -u maas -i ssh-copy-id ubuntu@192.168.122.1
 +```
 +As the maas user, test virsh commands against libvirt at 192.168.122.1:
 +```bash
 +sudo -u maas virsh -c qemu+ssh://ubuntu@192.168.122.1/system list --all
 +```
 ###Set upstream DNS ###Set upstream DNS
  
Line 145: Line 227:
 ### x509 keys ### x509 keys
  
-Create a x509 certificate to use with WinRM+Create a x509 certificate to use with WinRM. This command is available on the MAAS node itself.
  
 ```bash ```bash
 maas-generate-winrm-cert maas-generate-winrm-cert
 ``` ```
 +
 +For your convenience, there are also self contained binaries available for [windows](http://wiki.cloudbase.it/_media/create-cert.zip) and [linux](http://wiki.cloudbase.it/_media/create-cert.linux.zip)
 +
  
 Copy the outputed key to: Copy the outputed key to:
Line 157: Line 242:
 ## Creating a windows image for MaaS ## Creating a windows image for MaaS
  
-To generate a new image for MaaS, you will need the following powershell commandlet:+To generate a new image for MaaS, you will need the following powershell scripts:
  
 ``` ```
-https://github.com/cloudbase/windows-openstack-imaging-tools+https://github.com/cloudbase/windows-openstack-imaging-tools/tree/experimental
 ``` ```
  
maas.1448483352.txt.gz · Last modified: 2015/11/25 22:29 by gsamfira