def create_bar(): with sudo(user='******'), cd('/srv/'): if exists('/tmp/foo'): mkdir('/tmp/foo/bar') else: print('/tmp/foo does not exist') ls('tamer')
def test_folder_creation_existence_and_deletion(connection): path = '/tmp/usinetestfolder' run(f'rmdir {path} || exit 0') assert not exists(path) mkdir(path) assert exists(path) run(f'rmdir {path}') assert not exists(path)
def test_folder_mv(connection): path = '/tmp/usinetestfolder' newpath = '/tmp/usinenewtestfolder' run(f'rmdir {newpath} || exit 0') mkdir(path) mv(path, newpath) assert exists(newpath) assert not exists(path) run(f'rmdir {newpath}') assert not exists(newpath)
def configure_mod_tile(): with sudo(user='******'): mkdir('/srv/tilery/tmp/tiles') mkdir('/srv/tilery/renderd') with sudo(), cd('/etc/apache2/'): put('remote/tile.load', 'mods-available/tile.load') put('remote/tile.conf', 'mods-available/tile.conf') put('remote/apache.conf', 'sites-enabled/000-default.conf') put('remote/ports.conf', 'ports.conf') run('a2enmod tile')
def deploy(): """Send config files.""" with sudo(user='******'): mkdir('/srv/tilery/pianoforte/data') put(config.source_dir / 'mapping.yml', '/srv/tilery/mapping.yml') imposm_conf = template('remote/imposm.conf', **config) put(imposm_conf, '/srv/tilery/imposm.conf') put('remote/renderd.conf', '/etc/renderd.conf') put(config.source_dir / 'dist/', '/srv/tilery/pianoforte/') put(config.source_dir / 'fonts/', '/srv/tilery/pianoforte/fonts') put(config.source_dir / 'icon/', '/srv/tilery/pianoforte/icon')
def test_folder_cp(connection): path = '/tmp/usinetestfolder' targetpath = '/tmp/usinetargettestfolder' run(f'rmdir {targetpath} || exit 0') mkdir(path) cp(path, targetpath) assert exists(targetpath) assert exists(path) run(f'rmdir {targetpath}') assert not exists(targetpath) run(f'rmdir {path}') assert not exists(path)
def letsencrypt(): """Configure letsencrypt.""" with sudo(): run('add-apt-repository --yes ppa:certbot/certbot') run('apt update') run('apt install -y certbot') mkdir('/var/www/letsencrypt/.well-known/acme-challenge') domains = ','.join(list(config.piano_domains) + list(config.forte_domains)) certbot_conf = template('remote/certbot.ini', domains=domains) put(certbot_conf, '/var/www/certbot.ini') run('certbot certonly -c /var/www/certbot.ini --non-interactive ' '--agree-tos')
def test_folder_creation_existence_and_deletion_with_subfolder(connection): path = '/tmp/usinetestfolder' subpath = f'{path}/subfolder' run(f'rmdir {subpath} || exit 0') run(f'rmdir {path} || exit 0') assert not exists(path) with pytest.raises(SystemExit): mkdir(subpath, parents=False) mkdir(subpath) assert exists(subpath) run(f'rmdir {subpath}') run(f'rmdir {path}') assert not exists(path)
def install_imposm(force=False, release='0.6.0-alpha.4'): """Install imposm from binary. :force: install even if the binary already exists. :release: optionnal release to install """ if exists('/usr/bin/imposm') and not force: print('imposm already installed') return # Cf https://github.com/omniscale/imposm3/issues/165#issuecomment-395993259 wget(f'https://github.com/omniscale/imposm3/releases/download/v{release}/imposm-{release}-linux-x86-64.tar.gz', # noqa '/tmp/imposm.tar.gz') run('tar -xzf /tmp/imposm.tar.gz --directory /srv/tilery/src') with sudo(): run(f'ln --symbolic --force ' f'/srv/tilery/src/imposm-{release}-linux-x86-64/imposm ' f'/usr/bin/imposm') with sudo(user='******'): mkdir('/srv/tilery/tmp/imposm')
def test_trying_to_create_existing_folder(connection): path = '/tmp/usinetestfolder' run(f'rmdir {path} || exit 0') mkdir(path) mkdir(path) # Should not fail with pytest.raises(SystemExit): mkdir(path, parents=False) run(f'rmdir {path}')
def system(): """Install the system deps.""" # Not installed in minimized 18.04. run('which sudo || apt install sudo') with sudo(): run('apt update') run('apt install -y postgresql postgis gdal-bin screen nginx ' 'software-properties-common wget unzip autoconf libtool g++ ' 'libmapnik-dev libleveldb1v5 libgeos-dev goaccess ' 'libprotobuf-dev unifont curl zlib1g-dev uuid-dev python-psycopg2 ' 'munin-node libdbd-pg-perl libwww-perl apache2 apache2-dev') run('useradd -N tilery -d /srv/tilery/ || exit 0') mkdir('/srv/tilery/src') mkdir('/srv/tilery/tmp') mkdir('/srv/tilery/letsencrypt/.well-known/acme-challenge') chown('tilery:users', '/srv/tilery/') run('chsh -s /bin/bash tilery') install_imposm() install_mod_tile() configure_mod_tile() configure_munin() install_goaccess()