Example #1
0
if host.fact.linux_name in ['Ubuntu']:
    apt.packages(
        name='Install pip3 so you can install virtualenv',
        packages='python3-pip',
        update=True,
    )

if not host.fact.file('/usr/bin/pip'):
    files.link(
        name='Create link /usr/bin/pip that points to /usr/bin/pip3',
        path='/usr/bin/pip',
        target='/usr/bin/pip3',
    )

pip.packages(
    name='Install virtualenv using pip',
    packages='virtualenv',
)

pip.virtualenv(
    name='Create a virtualenv',
    path='/usr/local/bin/venv',
)

# use that virtualenv to install pyinfra
pip.packages(
    name='Install pyinfra into a virtualenv',
    packages='pyinfra',
    virtualenv='/usr/local/bin/venv',
)

Example #2
0
if host.get_fact(LinuxName) in ["Ubuntu"]:
    apt.packages(
        name="Install pip3 so you can install virtualenv",
        packages="python3-pip",
        update=True,
    )

if not host.get_fact(File, path="/usr/bin/pip"):
    files.link(
        name="Create link /usr/bin/pip that points to /usr/bin/pip3",
        path="/usr/bin/pip",
        target="/usr/bin/pip3",
    )

pip.packages(
    name="Install virtualenv using pip",
    packages="virtualenv",
)

pip.virtualenv(
    name="Create a virtualenv",
    path="/usr/local/bin/venv",
)

# use that virtualenv to install pyinfra
pip.packages(
    name="Install pyinfra into a virtualenv",
    packages=["pyinfra", "cryptography==3.3.2"],
    virtualenv="/usr/local/bin/venv",
)

Example #3
0
"""
Install all the packages for the base system.

Do not urun this file directly. It won't work. Instead run:

$ pyinfra @local __file__
"""

from pyinfra.operations import apt, pip

USE_SUDO_PASSWORD = True

apt.packages(
    name="Install Packages / Python Tools",
    packages=["python3-venv"],
    latest=True,
    sudo=True,
)

# TODO: install poetry, black with pipx
pip.packages(
    name="Install Packages / Python Tools Pipx",
    pip="pip3",
    packages=["pipx"],
    latest=True,
)
from pyinfra import host
from pyinfra.operations import pip, server

pip.packages(
    name='Install django using pip',
    pip='pip3',
    packages='django',
)

pip.packages(
    name='Install djangotestframework using pip',
    pip='pip3',
    packages='djangorestframework',
)

pip.packages(
    name='Install django pwa using pip',
    pip='pip3',
    packages='django-progressive',
)

server.shell(
    name='Create django project mysite',
    commands='cd ~; django-admin startproject mysite',
)
Example #5
0
# Ensure the state of git repositories
git.repo(
    name='Clone pyinfra repository',
    src='[email protected]:Fizzadar/pyinfra',
    dest=host.data.app_dir,
    branch='develop',
    ssh_keyscan=True,
    sudo=True,
    # Carry SSH agent details w/sudo
    preserve_sudo_env=True,
)

# Manage pip packages
did_install = pip.packages(
    name='Install virtualenv with pip',
    packages=['virtualenv'],
    sudo=True,
)
# Use operation meta to affect the deploy
if did_install.changed:
    server.shell('echo "Clean package build/etc"', )

# Create a virtualenv
server.shell(
    name='Setup the virtualenv',
    commands='virtualenv {{ host.data.env_dir }}',
    sudo=True,
    sudo_user='******',
)
# and manage pip within it
pip.packages(