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', )
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", )
""" 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', )
# 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(