1
0
Fork 0
mirror of https://github.com/ThomasGsp/HyperProxmox.git synced 2025-02-15 04:32:15 +00:00
HyperProxmox/system/scripts/install_packages.py
thomas.guiseppin 5352a2b94a first commit
2017-10-21 22:04:42 +02:00

69 lines
No EOL
2.3 KiB
Python
Executable file

import ConfigParser
import os
from fabric.contrib import files
from fabric.api import *
from fabric.utils import warn
SERVER_ROLES = ['cache']
env.user = 'root'
env.key_filename = '~/.ssh/id_rsa'
env.roledefs = dict.fromkeys(SERVER_ROLES, [])
# Directory structure
PROJECT_ROOT = os.path.dirname(__file__)
CONF_ROOT = os.path.join(PROJECT_ROOT, 'lamp-debian9')
def install_packages(*roles):
"""
Install packages for the given roles.
"""
roles = list(roles)
if roles == ['all', ]:
roles = SERVER_ROLES
if 'base' not in roles:
roles.insert(0, 'base')
config_file = os.path.join(CONF_ROOT, u'debian9.ini' % env)
print(config_file)
config = ConfigParser.SafeConfigParser()
config.read(config_file)
for role in roles:
if config.has_section(role):
# Get ppas
if config.has_option(role, 'ppas'):
for ppa in config.get(role, 'ppas').split(' '):
sudo(u'add-apt-repository %s' % ppa)
# Get sources
if config.has_option(role, 'sources'):
for section in config.get(role, 'sources').split(' '):
source = config.get(section, 'source')
key = config.get(section, 'key')
files.append(u'/etc/apt/sources.list', source, use_sudo=True)
sudo(u"wget -q %s -O - | sudo apt-key add -" % key)
sudo(u"apt-get update")
for package in config.get(role, 'packages'):
if role == "database":
pass
sudo(u"apt-get install -y %s" % package)
def install_mysql():
with settings(hide('warnings', 'stderr'), warn_only=True):
result = sudo('dpkg-query --show mysql-server')
if result.failed is False:
warn('MySQL is already installed')
return
mysql_password = prompt('Please enter MySQL root password:')
sudo('echo "mysql-server-5.0 mysql-server/root_password password ' \
'%s" | debconf-set-selections' % mysql_password)
sudo('echo "mysql-server-5.0 mysql-server/root_password_again password ' \
'%s" | debconf-set-selections' % mysql_password)
apt_get('mysql-server')
def host_type():
run('uname -s')