def _create_profile_d_file(): """ Create profile.d file with Java environment variables set. """ require_file('/etc/profile.d/java.sh', contents= 'export JAVA_HOME="/opt/jdk"\n' + 'export PATH="$JAVA_HOME/bin:$PATH"\n', mode='0755', use_sudo=True)
def _create_profile_d_file(): """ Create profile.d file with Java environment variables set. """ require_file('/etc/profile.d/java.sh', contents='export JAVA_HOME="/opt/jdk"\n' + 'export PATH="$JAVA_HOME/bin:$PATH"\n', mode='0755', use_sudo=True)
def _create_profile_d_file(): """ Create profile.d file with Java environment variables set. """ from fabtools.require.files import file as require_file require_file( "/etc/profile.d/java.sh", contents='export JAVA_HOME="/opt/jdk"\n' + 'export PATH="$JAVA_HOME/bin:$PATH"\n', mode="0755", use_sudo=True, )
def require_file_changes_ownership(): from fabtools.files import owner from fabtools.require.files import file as require_file try: run('touch foo') assert owner('foo') == env.user require_file('foo', use_sudo=True) assert owner('foo') == 'root' finally: sudo('rm -f foo')
def _create_profile_d_file(prefix): """ Create profile.d file with Java environment variables set. """ from fabtools.require.files import file as require_file require_file( '/etc/profile.d/java.sh', contents=dedent("""\ export JAVA_HOME="%s/jdk" export PATH="$JAVA_HOME/bin:$PATH" """ % prefix), mode='0755', use_sudo=True, )
def require_file_with_contents_has_correct_permissions(): from fabtools.files import owner, group, mode from fabtools.require.files import file as require_file try: sudo('echo "something" > foo') require_file('bar', contents='something', use_sudo=True) assert owner('foo') == owner('bar') assert group('foo') == group('bar') assert mode('foo') == mode('bar') finally: sudo('rm -f foo bar')
def require_empty_file_has_correct_permissions(): from fabtools.files import owner, group, mode from fabtools.require.files import file as require_file try: sudo('touch foo') require_file('bar', use_sudo=True) assert owner('foo') == owner('bar') assert group('foo') == group('bar') assert mode('foo') == mode('bar') finally: sudo('rm -f foo bar')
def add_task(name, timespec, user, command, environment=None): """ Add a cron task. The *command* will be run as *user* periodically. You can use any valid `crontab(5)`_ *timespec*, including the ``@hourly``, ``@daily``, ``@weekly``, ``@monthly`` and ``@yearly`` shortcuts. You can also provide an optional dictionary of environment variables that should be set when running the periodic command. Examples:: from fabtools.cron import add_task # Run every month add_task('cleanup', '@monthly', 'alice', '/home/alice/bin/cleanup.sh') # Run every tuesday and friday at 5:30am add_task('reindex', '30 5 * * 2,4', 'bob', '/home/bob/bin/reindex.sh') .. _crontab(5): http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5 """ if environment is None: environment = {} lines = [] # Write optional environment variables first for key, value in environment.items(): lines.append('%(key)s=%(value)s\n' % locals()) # Write the main crontab line lines.append('%(timespec)s %(user)s %(command)s\n' % locals()) from fabtools.require.files import file as require_file require_file( path='/etc/cron.d/%(name)s' % locals(), contents=''.join(lines), owner='root', mode='0644', use_sudo=True, )
def add_task(name, timespec, user, command, environment=None): """ Add a cron task. The *command* will be run as *user* periodically. You can use any valid `crontab(5)`_ *timespec*, including the ``@hourly``, ``@daily``, ``@weekly``, ``@monthly`` and ``@yearly`` shortcuts. You can also provide an optional dictionary of environment variables that should be set when running the periodic command. Examples:: from fabtools.cron import add_task # Run every month add_task('cleanup', '@monthly', 'alice', '/home/alice/bin/cleanup.sh') # Run every tuesday and friday at 5:30am add_task('reindex', '30 5 * * 2,4', 'bob', '/home/bob/bin/reindex.sh') .. _crontab(5): http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5 """ if environment is None: environment = {} lines = [] # Write optional environment variables first for key, value in environment.iteritems(): lines.append('%(key)s=%(value)s\n' % locals()) # Write the main crontab line lines.append('%(timespec)s %(user)s %(command)s\n' % locals()) from fabtools.require.files import file as require_file require_file( path='/etc/cron.d/%(name)s' % locals(), contents=''.join(lines), owner='root', mode='0644', use_sudo=True, )
def example_site(): from fabtools.require.apache import site as require_site from fabtools.require.files import directory as require_directory from fabtools.require.files import file as require_file site_name = 'example.com' site_dir = posixpath.join('/var/www', site_name) require_directory(site_dir, use_sudo=True) site_homepage = posixpath.join(site_dir, 'index.html') require_file(site_homepage, contents="example page", use_sudo=True) site_config_path = '/etc/apache2/sites-available/{0}.conf'.format( site_name) site_link_path = '/etc/apache2/sites-enabled/{0}.conf'.format(site_name) require_file(site_config_path, use_sudo=True) require_site( site_name, template_contents=dedent("""\ <VirtualHost *:%(port)s> ServerName %(hostname)s DocumentRoot %(document_root)s <Directory %(document_root)s> </Directory> </VirtualHost> """), port=80, hostname=site_name, document_root=site_dir, ) yield site_name sudo('rm -rf {0}'.format(quote(site_dir))) sudo('rm -f {0}'.format(quote(site_config_path))) sudo('rm -f {0}'.format(quote(site_link_path)))
def example_site(): from fabtools.require.apache import site as require_site from fabtools.require.files import directory as require_directory from fabtools.require.files import file as require_file site_name = 'example.com' site_dir = posixpath.join('/var/www', site_name) require_directory(site_dir, use_sudo=True) site_homepage = posixpath.join(site_dir, 'index.html') require_file(site_homepage, contents="example page", use_sudo=True) site_config_path = '/etc/apache2/sites-available/{0}.conf'.format(site_name) site_link_path = '/etc/apache2/sites-enabled/{0}.conf'.format(site_name) require_file(site_config_path, use_sudo=True) require_site( site_name, template_contents=dedent("""\ <VirtualHost *:%(port)s> ServerName %(hostname)s DocumentRoot %(document_root)s <Directory %(document_root)s> </Directory> </VirtualHost> """), port=80, hostname=site_name, document_root=site_dir, ) yield site_name sudo('rm -rf {0}'.format(quote(site_dir))) sudo('rm -f {0}'.format(quote(site_config_path))) sudo('rm -f {0}'.format(quote(site_link_path)))