Duplicate WebUI storage layout


#1

Hi guys,

Is there a way to duplicate a storage layout made into the Web Interface for an other node ? I have 32 new servers made identical and replicate the storage layout manually is time consuming.
I don’t want to play with storage in curtin file too.
Did you try to use something like Selenium or Kantu to register the creation ? I did without full success :confused:
I was wondering if the storage layout was stored somewhere and could be possibly duplicate to others machine.
Thank you,
Ludwig


#2

You can’t copy it through web UI so there are two possibilities:

  • partitioning through preseed files using curtin
  • script that uses API to set storage on every host in state READY:

IyEvYmluL2Jhc2gKClBST0ZJTEU9ZGVmYXVsdAoKaWYgWyAteiAiJCoiIF07IHRoZW4KICAgICAg
ICBzeXN0ZW1faWRzPWBtYWFzICRQUk9GSUxFIG1hY2hpbmVzIHJlYWQgfCBqcSAiLltdIHwgc2Vs
ZWN0KC5zdGF0dXMgPT0gNCkgfCAuc3lzdGVtX2lkIiAtTXJgCmVsc2UKICAgICAgICBzeXN0ZW1f
aWRzPSQqCmZpCmZvciBTWVNURU1fSUQgaW4gJHN5c3RlbV9pZHMKZG8KCXJvb3RfZGV2aWQ9YG1h
YXMgJFBST0ZJTEUgYmxvY2stZGV2aWNlcyByZWFkICRTWVNURU1fSUQgfCBqcSAiLltdIHwgc2Vs
ZWN0KC5tb2RlbCA9PSBcIkxPR0lDQUwgVk9MVU1FXCIpLmlkIiAtLWNvbXBhY3Qtb3V0cHV0YAoJ
aWYgW1sgISAiJHJvb3RfZGV2aWQiID1+IFswLTldKyBdXTsgdGhlbgoJCWVjaG8gTm8gcm9vdCBk
ZXZpY2UgZm91bmQgZm9yIHN5c3RlbSAkU1lTVEVNX0lECgkJY29udGludWUKCWZpCgltYWFzICRQ
Uk9GSUxFIGJsb2NrLWRldmljZSBzZXQtYm9vdC1kaXNrICRTWVNURU1fSUQgJHJvb3RfZGV2aWQK
CWJvb3RlZmlwYXJ0X2lkPWBtYWFzICRQUk9GSUxFIHBhcnRpdGlvbnMgY3JlYXRlICRTWVNURU1f
SUQgJHJvb3RfZGV2aWQgc2l6ZT01MTJNIHwganEgLmlkYAoJbWFhcyAkUFJPRklMRSBwYXJ0aXRp
b24gZm9ybWF0ICRTWVNURU1fSUQgJHJvb3RfZGV2aWQgJGJvb3RlZmlwYXJ0X2lkIGZzdHlwZT1m
YXQzMgoJbWFhcyAkUFJPRklMRSBwYXJ0aXRpb24gbW91bnQgJFNZU1RFTV9JRCAkcm9vdF9kZXZp
ZCAkYm9vdGVmaXBhcnRfaWQgbW91bnRfcG9pbnQ9L2Jvb3QvZWZpCgoJYm9vdHBhcnRfaWQ9YG1h
YXMgJFBST0ZJTEUgcGFydGl0aW9ucyBjcmVhdGUgJFNZU1RFTV9JRCAkcm9vdF9kZXZpZCBzaXpl
PTEwMjRNIHwganEgLmlkYAoJbWFhcyAkUFJPRklMRSBwYXJ0aXRpb24gZm9ybWF0ICRTWVNURU1f
SUQgJHJvb3RfZGV2aWQgJGJvb3RwYXJ0X2lkIGZzdHlwZT1leHQ0CgltYWFzICRQUk9GSUxFIHBh
cnRpdGlvbiBtb3VudCAkU1lTVEVNX0lEICRyb290X2RldmlkICRib290cGFydF9pZCBtb3VudF9w
b2ludD0vYm9vdAoKCWx2bXBhcnRfaWQ9YG1hYXMgJFBST0ZJTEUgcGFydGl0aW9ucyBjcmVhdGUg
JFNZU1RFTV9JRCAkcm9vdF9kZXZpZCBzaXplPTU5OEcgfCBqcSAuaWRgCgl2ZzAwX2lkPWBtYWFz
ICRQUk9GSUxFIHZvbHVtZS1ncm91cHMgY3JlYXRlICRTWVNURU1fSUQgcGFydGl0aW9ucz0kbHZt
cGFydF9pZCBuYW1lPXZnMDAgfCBqcSAuaWRgCgkKCSMgTFYgcm9vdAoJbHZyb290X2lkPWBtYWFz
ICRQUk9GSUxFIHZvbHVtZS1ncm91cCBjcmVhdGUtbG9naWNhbC12b2x1bWUgJFNZU1RFTV9JRCAk
dmcwMF9pZCBuYW1lPXJvb3Qgc2l6ZT0yMEcgfCBqcSAuaWRgCgltYWFzICRQUk9GSUxFIGJsb2Nr
LWRldmljZSBmb3JtYXQgJFNZU1RFTV9JRCAkbHZyb290X2lkIGZzdHlwZT1leHQ0CgltYWFzICRQ
Uk9GSUxFIGJsb2NrLWRldmljZSBtb3VudCAkU1lTVEVNX0lEICRsdnJvb3RfaWQgbW91bnRfcG9p
bnQ9LwoKCSMgTFYgZGF0YQoJbHZkYXRhX2lkPWBtYWFzICRQUk9GSUxFIHZvbHVtZS1ncm91cCBj
cmVhdGUtbG9naWNhbC12b2x1bWUgJFNZU1RFTV9JRCAkdmcwMF9pZCBuYW1lPWRhdGEgc2l6ZT0x
NUcgfCBqcSAuaWRgCgltYWFzICRQUk9GSUxFIGJsb2NrLWRldmljZSBmb3JtYXQgJFNZU1RFTV9J
RCAkbHZkYXRhX2lkIGZzdHlwZT1leHQ0CgltYWFzICRQUk9GSUxFIGJsb2NrLWRldmljZSBtb3Vu
dCAkU1lTVEVNX0lEICRsdmRhdGFfaWQgbW91bnRfcG9pbnQ9L2RhdGEKCgkjIExWIHZhcgoJbHZ2
YXJfaWQ9YG1hYXMgJFBST0ZJTEUgdm9sdW1lLWdyb3VwIGNyZWF0ZS1sb2dpY2FsLXZvbHVtZSAk
U1lTVEVNX0lEICR2ZzAwX2lkIG5hbWU9dmFyIHNpemU9MjBHIHwganEgLmlkYAoJbWFhcyAkUFJP
RklMRSBibG9jay1kZXZpY2UgZm9ybWF0ICRTWVNURU1fSUQgJGx2dmFyX2lkIGZzdHlwZT1leHQ0
CgltYWFzICRQUk9GSUxFIGJsb2NrLWRldmljZSBtb3VudCAkU1lTVEVNX0lEICRsdnZhcl9pZCBt
b3VudF9wb2ludD0vdmFyCgoJIyBMViBsb2cKCWx2bG9nX2lkPWBtYWFzICRQUk9GSUxFIHZvbHVt
ZS1ncm91cCBjcmVhdGUtbG9naWNhbC12b2x1bWUgJFNZU1RFTV9JRCAkdmcwMF9pZCBuYW1lPWxv
ZyBzaXplPTUwRyB8IGpxIC5pZGAKCW1hYXMgJFBST0ZJTEUgYmxvY2stZGV2aWNlIGZvcm1hdCAk
U1lTVEVNX0lEICRsdmxvZ19pZCBmc3R5cGU9ZXh0NAoJbWFhcyAkUFJPRklMRSBibG9jay1kZXZp
Y2UgbW91bnQgJFNZU1RFTV9JRCAkbHZsb2dfaWQgbW91bnRfcG9pbnQ9L3Zhci9sb2cKCgkjIExW
IHZhcmxpYmRvY2tlcgoJbHZkb2NrZXJfaWQ9YG1hYXMgJFBST0ZJTEUgdm9sdW1lLWdyb3VwIGNy
ZWF0ZS1sb2dpY2FsLXZvbHVtZSAkU1lTVEVNX0lEICR2ZzAwX2lkIG5hbWU9ZG9ja2VyIHNpemU9
MTAwRyB8IGpxIC5pZGAKCW1hYXMgJFBST0ZJTEUgYmxvY2stZGV2aWNlIGZvcm1hdCAkU1lTVEVN
X0lEICRsdmRvY2tlcl9pZCBmc3R5cGU9ZXh0NAoJbWFhcyAkUFJPRklMRSBibG9jay1kZXZpY2Ug
bW91bnQgJFNZU1RFTV9JRCAkbHZkb2NrZXJfaWQgbW91bnRfcG9pbnQ9L3Zhci9saWIvZG9ja2Vy
CmRvbmUK

decode it with
base64 -d - > maas_setup_storage.sh

this script probably wont work for you but use it as a inspiration.


#3

Thank you for your answer, I’ll give a try to the cloud init option.


#4

Hi ludww,

Unfortunately you can’t duplicate the storage layout of a machine through the UI currently but you might find this API call useful:

PPOST /MAAS/api/2.0/machines/?op=clone

You can see more details about it in the API docs.

Best,

Lilyana


#5

Hello Lilyana,

Thank you for your answer, I was finally able to configure my Postman to play with MAAS API, several requests work fine however the clone don’t :

Unrecognised signature: method=POST op=clone

Any idea why it does not work ?
I’m using MAAS 2.5.3

Thank you,
Ludwig


#6

Hi Ludwig,

This API call was added with the 2.6 release, so if you’d like to make use of it I’d suggest upgrading to MAAS 2.6.1 (the latest released version).

You can install it from ppa:maas/2.6 (note also published to ppa:maas/stable, which has been deprecated in favour of major-version PPAs).

Best,
Lilyana


#7

Hi Lilyana,

Ok that make sense ! I will see if we can schedule the upgrade here.

Thanks a lot again :slight_smile:
Ludwig