diff options
author | arnaudmorin <arnaud.morin@gmail.com> | 2015-05-29 15:56:50 +0200 |
---|---|---|
committer | arnaudmorin <arnaud.morin@gmail.com> | 2015-06-26 14:10:20 +0200 |
commit | bff17c3ed2f7ba8a665a1ff2a0ba89ace4d3a5c9 (patch) | |
tree | 78d34c7cb7dc369fa1b2d0144f3c32cf7a081946 /opensteak/tools/opensteak/argparser.py | |
parent | 5cc4c1455698767349e88022449c0c00d0e61239 (diff) |
Add create vm script and foreman config
Add a script to create a KVM machine and install foreman in it.
This is the beginning of the OpenSteak installation mecanism.
It is very similare as what is done in the Foreman/Quickstack approach
with small differences:
- Ubuntu as base OS (instead of CentOS)
- Foreman v1.8 (instead of 1.7.5
- KVM (libvirt) virtual machine (instead of Vagrant)
- Only python/bash scripts to manage all the stuff (instead of
Khaleesi/Ansible/Astaport playbooks)
Change-Id: Ie66b1da4288372927e30163f82f5a0f45e2e73d0
JIRA: BGS-9
Signed-off-by: arnaudmorin <arnaud.morin@gmail.com>
Diffstat (limited to 'opensteak/tools/opensteak/argparser.py')
-rw-r--r-- | opensteak/tools/opensteak/argparser.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/opensteak/tools/opensteak/argparser.py b/opensteak/tools/opensteak/argparser.py new file mode 100644 index 0000000..de980b6 --- /dev/null +++ b/opensteak/tools/opensteak/argparser.py @@ -0,0 +1,46 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Authors: +# @author: David Blaisonneau <david.blaisonneau@orange.com> +# @author: Arnaud Morin <arnaud1.morin@orange.com> +# @author: Pawel Chomicki <pawel.chomicki@nokia.com> + +""" +Parse arguments from CLI +""" + +import argparse + +class OpenSteakArgParser: + + def __init__(self): + """ + Parse the command line + """ + self.parser = argparse.ArgumentParser(description='This script will create config files for a VM in current folder.', usage='%(prog)s [options] name') + self.parser.add_argument('name', help='Set the name of the machine') + self.parser.add_argument('-i', '--ip', help='Set the ip address of the machine. (Default is 192.168.42.42)', default='192.168.42.42') + self.parser.add_argument('-n', '--netmask', help='Set the netmask in short format. (Default is 24)', default='24') + self.parser.add_argument('-g', '--gateway', help='Set the gateway to ping internet. (Default is 192.168.42.1)', default='192.168.42.1') + self.parser.add_argument('-p', '--password', help='Set the ssh password. Login is ubuntu. (Default password is moutarde)', default='moutarde') + self.parser.add_argument('-u', '--cpu', help='Set number of CPU for the VM. (Default is 2)', default='2') + self.parser.add_argument('-r', '--ram', help='Set quantity of RAM for the VM in kB. (Default is 2097152)', default='2097152') + self.parser.add_argument('-o', '--iso', help='Use this iso file. (Default is trusty-server-cloudimg-amd64-disk1.img)', default='trusty-server-cloudimg-amd64-disk1.img') + self.parser.add_argument('-d', '--disksize', help='Create a disk with that size. (Default is 5G)', default='5G') + self.parser.add_argument('-f', '--force', help='Force creation without asking questions. This is dangerous as it will delete old VM with same name.', default=False, action='store_true') + + def parse(self): + return self.parser.parse_args() + |