Currently there's a case in modules/install_server/files/autoinstall/netboot.cfg which looks like this:
db[01][0-9][0-9]|dbstore100[3-5]|db2[01][0-9][0-9]|es101[1-9]|es201[1-9]|pc[12]00[7-9]|pc[12]010|labsdb1009|labsdb1010|labsdb1011|labsdb1012|dbprov[12]00[12]) echo partman/custom/no-srv-format.cfg ;; \
This matches ~all db hosts, and causes reimaging to fail with a deliberately invalid partman recipe to avoid /srv from getting reformatted and causing data loss.
In order to reimage a db server, then, requires that glob pattern to be updated to specifically exclude a single host. E.g. changing the above to exclude db2087:
db[01][0-9][0-9]|dbstore100[3-5]|db20[0-7][0-9]|db208[0-6]|db208[8-9]|db209[0-9]|db21[0-9][0-9]|es101[1-9]|es201[1-9]|pc[12]00[7-9]|pc[12]010|labsdb1009|labsdb1010|labsdb1011|labsdb1012|dbprov[12]00[12]) echo partman/custom/no-srv-format.cfg ;; \
This is very error prone as it is hard to write and hard to review.
In a better world, it would be possible to specify explicitly what host is allowed to be reimaged, and have all db hosts matched with no-srv-format.cfg as a fallback. As the file appears to be a large bash case statement, in theory it should be possible to just add a simple case above the all-db-host case like this:
db2087) ;; \ db[01][0-9][0-9]|dbstore100[3-5]|db2[01][0-9][0-9]|es101[1-9]|es201[1-9]|pc[12]00[7-9]|pc[12]010|labsdb1009|labsdb1010|labsdb1011|labsdb1012|dbprov[12]00[12]) echo partman/custom/no-srv-format.cfg ;; \
That should then match only the desired host, and make it very easy to see what's happening (and to revert it later by hand if necessary).
This needs testing to ensure that it works. @Marostegui : can you suggest a test host i can try this with?