4. cloudops.com @cloudops_Page
About Us
4
“Since 2005, CloudOps
has enabled hundreds
of enterprises and web-
based companies to
build their business in
the cloud.”
We provide private, public and
hybrid cloud solutions for businesses
seeking scalability and for enterprises
making their move to the cloud. Our
best-in-class cloud architecture allows
companies to confidently, securely, and
reliably achieve new levels of business
performance.
5. cloudops.com @cloudops_Page
About cloud.ca
5
“cloud.ca is a self-
service utility IaaS
platform designed for
applications,
workspaces and data.”
CloudOps operates cloud.ca a
Canadian cloud service for businesses
requiring that all or some of their data
remain in Canada for reasons of
complicance, performance, cost or
privacy.
6. cloudops.com @cloudops_Page
CloudMC
6
CloudMC is a multi-
cloud services
management and
orchestration software
that supports Apache
CloudStack
CloudOps has built its own proprietary
cloud services “CloudMC” front end
software for cloud service providers
(used by cloud.ca) and enterprises
looking to offer hybrid IaaS.
It supports Apache Cloudstack based
private clouds and public clouds, and
we are building support for large utility
clouds such as AWS.
8. cloudops.com @cloudops_Page
Cloud-Init
8
Collection of tools to
initialize Virtual
Machine at is first boot.
● Python based
● Started by Scott Moser
● Backed by Canonical
● Widely used by public cloud
providers (AWS, Azure, rackspace)
● Provide easy access to meta-data
exposed by the cloud provider
10. cloudops.com @cloudops_Page
Out of the Box
10
Per instance:
• Generate new SSH server keys
• Refresh /dev/urandom
• Set hostname and domain
• Disable ssh access from root
(force close)
• Configure “ubuntu” ssh access
Your scripts:
/var/lib/cloud/scripts
/per-boot
/per-instance
/per-once
11. cloudops.com @cloudops_Page
Basic Usage of Cloud-Init
11
1. Create user “cloud-user”
2. password set to “cloud-user”
3. sshkey apply to root and “cloud-user”
4. enable sudo
/etc/cloud/cloud.cfg
system_info:
default_user:
name:
cloud-‐user
sudo:
["ALL=(ALL)
NOPASSWD:ALL"]
gecos:
Generic
cloud
user
Configuration thru YAML file
12. cloudops.com @cloudops_Page
bzr
branch
lp:cloud-‐init
cd
cloud-‐init
cd
packages
./bddeb
-‐-‐init-‐system
systemd
-‐-‐python2
bzr
branch
lp:cloud-‐init
cd
cloud-‐init
python
setup.py
build
python
setup.py
install
Quick and dirty
12
0.7.7 .deb package
from the upstream
15. cloudops.com @cloudops_Page
meta-data from VR
15
● Random user password
generated by CloudStack
● user SSH public key
● VM meta-data
● user-data: user define text
meta-data:
● service-offering
● availability-zone
● local-ipv4
● local-hostname
● public-ipv4
● public-hostname
● instance-id
Documentation ref: http://goo.gl/HzbKM7
29. cloudops.com @cloudops_Page
Please login as the user "cloud-user" rather than the user "root".
29
/etc/ssh/sshd_config
Match User root
ForceCommand cat /etc/issue.root
ForceCommand exit
SSH as root auto logout when using Password
31. cloudops.com @cloudops_Page
URL trailing slash
31
CLOUDSTACK-7405
● Using cloudstack older than 4.4.1
require cloud-init 0.7.5+
● Latest ACS ( 4.4.2+), older cloud-
init work (0.6.5)
32. cloudops.com @cloudops_Page
change SSHkey for VM user
32
resetSSHKeyForVirtualMachineCloudStack can change SSHkey on the
VR, but not considered by cloud-init at
reboot
https://bugs.launchpad.net/cloud-init/+bug/1440265
33. cloudops.com @cloudops_Page
change password for VM user
33
resetPasswordForVirtualMachineCloudStack can reset password on the
VR, but not considered by cloud-init at
reboot
https://bugs.launchpad.net/cloud-init/+bug/1440263
• Potential fix posted on 2015-04-15
34. cloudops.com @cloudops_Page
Recent updates
34
● Cloud-Init upstream support password. cloud-init-0.7.7
○ resetPasswordForVirtualMachine still not working
● CloudStack documentation now include Cloud-Init
● Documentation Pull request submit to Cloud-Init upstream