aboutsummaryrefslogtreecommitdiff
path: root/cloud_native
blob: 964a6aac68a8dbdd211f1b551ba4a6bedb040cc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79

Cloud native way (currently not working fully as iproute2 package is missing)

1. create user account "debian". (openstack will try to push selected ssh key based login for this account.)
2. workaround: currnet GNU Hurd in openstack could not read login metadata. Therefore, create another account name hurdstack. We will use this account to login via ssh.

-------------------
set console output
-------------------
# sed -i 's/{GRUB_CMDLINE_GNUMACH}/{GRUB_CMDLINE_GNUMACH} console=com0/' /etc/grub.d/10_hurd
# export PATH=$PATH:/usr/sbin/:/sbin/
# update-grub

------------------
install packages
------------------
# apt-get install patch cloud-init inetutils-tools

-----------------------------------------------
patch cloud-init for inetutils-ifconfig support
-----------------------------------------------
# patch /usr/lib/python3/dist-packages/cloudinit/netinfo.py < netinfo.py.patch

(md5sum /usr/lib/python3/dist-packages/cloudinit/netinfo.py and set the value - optional)

# sed -i "s/004c853827df095227eef86175ee351b  usr\/lib\/python3\/dist-packages\/cloudinit\/netinfo.py/79af408603bc6e3489fd2d3f1a0e9cac  usr\/lib\/python3\/dist-packages\/cloudinit\/netinfo.py/" /var/lib/dpkg/info/cloud-init.md5sums

-------------------------------
remove MAC address and clean up
-------------------------------
# virt-sysprep -d hurdstack
# virsh undefine hurdstack

--------------------------------------------------------------
upload in openstack (you may change --public to other settings)
--------------------------------------------------------------
$ openstack image create \
  --container-format bare \
  --disk-format qcow2 \
  --property hw_disk_bus=ide \
  --property os_type=linux \
  --property os_distro=debian \
  --property os_admin_user=debian \
  --property os_version='10.12.7' \
  --property hw_vif_model=e1000 \
  --private \
  --file hurdstack.qcow2 \
  hurdstack

------------------------------
example create server command
------------------------------
list your available net-id
$ openstack network list

list your available security group id
$ openstack security group list

start an instance with any flavor (example with m1.nano)
$ openstack server create \
  --flavor m1.nano \
  --image hurdstack \
  --nic net-id=44b3993a-60dd-4074-a911-1b9ac4b8b6fa \
  --security-group 8b5d5482-2686-40a8-b394-5c764b6fe310 \
  --key-name mykey hurdstackinstance

--------------------
check  server status
--------------------
# openstack server list

enable port 22 from web-interface or command line for ssh login.

You may check status in openstack web-interface logs and ssh when it is ready.
ssh might take several minutes as cloud-init is trying to fetch metadata on boot which is still unavailable from GNU Hurd.

links:
https://www.debian.org/ports/hurd/hurd-install
https://docs.openstack.org/image-guide/create-images-manually.html