Add deploy.sh, change default output location

This commit is contained in:
Neill Cox 2023-09-17 22:14:31 -04:00
parent f01c1d971b
commit 61591542f3
3 changed files with 46 additions and 2 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
venv/ venv/
*.gen

View file

@ -24,3 +24,11 @@ optional arguments:
--containers-yaml-out CONTAINERS_YAML_OUT --containers-yaml-out CONTAINERS_YAML_OUT
--standalone-yaml-out STANDALONE_YAML_OUT --standalone-yaml-out STANDALONE_YAML_OUT
``` ```
Use this script to generate the yaml and a deploy script to buyild an AIO
By default the files will be placed in the home directory of the user running the script (should probable be the stack user)
When happy with the contents rename them to remove the .gen suffix and run the deploy script.
The doco for the AIO deply says to run the deploy using sudo - I don't think this is correct. If you use sudo you will get a warning about files ending up /root.

39
main.py
View file

@ -9,6 +9,9 @@ import yaml
def parse_args(): def parse_args():
"""Parse the command line arguments""" """Parse the command line arguments"""
home = os.environ.get('HOME')
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument("-u", "--username", required=True) parser.add_argument("-u", "--username", required=True)
parser.add_argument("-p", "--password", required=True) parser.add_argument("-p", "--password", required=True)
@ -25,10 +28,14 @@ def parse_args():
parser.add_argument("-g", "--gateway") parser.add_argument("-g", "--gateway")
parser.add_argument( parser.add_argument(
"--containers-yaml-out", "--containers-yaml-out",
default="./containers-prepare-parameters.yaml.gen", default=f"{home}/containers-prepare-parameters.yaml.gen",
) )
parser.add_argument( parser.add_argument(
"--standalone-yaml-out", default="./standalone_parameters.yaml.gen" "--standalone-yaml-out", default=f"{home}/standalone_parameters.yaml.gen"
)
parser.add_argument(
"--deploy-script-out",
default=f"{home}/deploy.sh.gen", dest="deploy"
) )
args = parser.parse_args() args = parser.parse_args()
@ -94,6 +101,30 @@ def build_containers_yaml(args):
return data return data
def deploy_sh(args):
home = os.environ.get("HOME")
template = (
"sudo openstack tripleo deploy \\\n"
" --templates \\\n"
f" --local-ip={args.address}/{args.netmask} \\\n"
" -e /usr/share/openstack-tripleo-heat-templates/"
"environments/standalone/standalone-tripleo.yaml \\\n"
" -r /usr/share/openstack-tripleo-heat-templates/"
"roles/Standalone.yaml \\\n"
f" -e {home}/containers-prepare-parameters.yaml \\\n"
f" -e {home}/standalone_parameters.yaml \\\n"
f" --output-dir {home} \\\n"
" --standalone\n"
)
return template
def set_hostname(args):
pass
def main(): def main():
"""main function""" """main function"""
args = parse_args() args = parse_args()
@ -112,6 +143,10 @@ def main():
parameters_out.write(yaml.dump(standalone_parameters)) parameters_out.write(yaml.dump(standalone_parameters))
print(f"standalone parameters yaml written to {args.standalone_yaml_out}") print(f"standalone parameters yaml written to {args.standalone_yaml_out}")
with open(args.deploy, "w", encoding="utf-8") as deploy:
deploy.write(deploy_sh(args))
print(f"deploy script written to {args.deploy}")
if __name__ == "__main__": if __name__ == "__main__":
main() main()