Пример #1
0
def setup_rabbitmq(user=None):
    """ installs official rabbitmq package and sets up user
    """
    deb.add_apt_key(
        url='http://www.rabbitmq.com/rabbitmq-signing-key-public.asc')
    require.deb.source('rabbitmq-server', 'http://www.rabbitmq.com/debian/',
                       'testing', 'main')
    require.deb.uptodate_index(max_age={'hour': 1})
    require.deb.packages([
        'rabbitmq-server',
    ])

    if user is None:
        user = SITE_USER

    envfile = join(home_directory(SITE_USER), 'site/bin/environment.sh')
    secret = randomstring(64)
    sudo('rabbitmqctl delete_user guest')
    sudo('rabbitmqctl add_user %s "%s"' % (user, secret))
    sudo('rabbitmqctl set_permissions -p / %s ".*" ".*" ".*"' % user)
    amqp_url = 'amqp://%s:%s@localhost:5672//' % (SITE_USER, secret)
    sed(envfile,
        'DJANGO_BROKER_URL=".*"',
        'DJANGO_BROKER_URL="%s"' % amqp_url,
        use_sudo=True)
Пример #2
0
def install_nginx():
    """
    Install NGINX and make it use certs.
    """
    if system.distrib_id() == 'Debian':
        require_file(url='http://nginx.org/packages/keys/nginx_signing.key')
        deb.add_apt_key('nginx_signing.key')
        su_delete('nginx_signing.key')

        url = 'http://nginx.org/packages/debian/'
        distrib = 'squeeze'
        if system.distrib_release().startswith('7'):
            distrib = 'wheezy'
        require.deb.source('nginx', url, distrib, 'nginx')

        require.deb.package('nginx')
        contents = PROXIED_SITE_TEMPLATE % {
            'server_name': 'cozy',
            'port': 443,
            'proxy_url': 'http://127.0.0.1:9104'
        }
        require.files.file('/etc/nginx/conf.d/cozy.conf', contents=contents,
                use_sudo=True)
        service.restart('nginx')

    else:
        require.deb.ppa("ppa:nginx/stable")

        require.nginx.site("cozy",
            template_contents=PROXIED_SITE_TEMPLATE,
            enabled=True,
            port=443,
            proxy_url='http://127.0.0.1:9104'
        )
    print(green("Nginx successfully installed."))
Пример #3
0
def install_passenger():
    """ Installs nginx with passenger support """

    # add pgp key
    print(green('Adding PGP key'))
    deb.add_apt_key(keyid='561F9B9CAC40B2F7', keyserver='keyserver.ubuntu.com')

    # add https support for apt
    utils.deb.install('apt-transport-https')

    # ubuntu 12.04 (precise)
    cmd = ('echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger '
           'precise main" > /etc/apt/sources.list.d/passenger.list')
    sudo(cmd)
    cmd = 'sudo chmod 600 /etc/apt/sources.list.d/passenger.list'
    sudo(cmd)

    # update apt index
    deb.update_index(quiet=False)

    print(green('Installing nginx and passenger'))
    utils.deb.install('nginx-full')
    utils.deb.install('passenger')

    print(green('Activating passenger'))
    uncomment('/etc/nginx/nginx.conf', 'passenger_root', use_sudo=True)
    uncomment('/etc/nginx/nginx.conf', 'passenger_ruby', use_sudo=True)
Пример #4
0
def test_add_apt_key_with_key_id_from_specific_key_server():
    from fabtools.deb import add_apt_key
    try:
        add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
        run_as_root('apt-key finger | grep -q 7BD9BF62')
    finally:
        run_as_root('apt-key del 7BD9BF62', quiet=True)
Пример #5
0
def key(keyid,
        filename=None,
        url=None,
        keyserver='subkeys.pgp.net',
        update=False):
    """
    Require a PGP key for APT.

    ::

        from fabtools import require

        # Varnish signing key from URL
        require.deb.key('C4DEFFEB', url='http://repo.varnish-cache.org/debian/GPG-key.txt')

        # Nginx signing key from default key server (subkeys.pgp.net)
        require.deb.key('7BD9BF62')

        # From custom key server
        require.deb.key('7BD9BF62', keyserver='keyserver.ubuntu.com')

        # From file
        require.deb.key('7BD9BF62', filename='nginx.asc')

    """

    if not apt_key_exists(keyid):
        add_apt_key(keyid=keyid,
                    filename=filename,
                    url=url,
                    keyserver=keyserver,
                    update=update)
Пример #6
0
def install():
    # add pgp key
    print(green('Adding PGP key'))
    deb.add_apt_key(keyid='58118E89F3A912897C070ADBF76221572C52609D',
                    keyserver='p80.pool.sks-keyservers.net')

    # add https support for apt
    utils.deb.install('apt-transport-https')

    # obtain the LSB version name
    id_, release, codename = run('lsb_release --id --release --codename --short').split("\r\n")

    # add docker apt sources list
    source = "deb https://apt.dockerproject.org/repo {}-{} main".format(id_.lower(), codename)
    append('/etc/apt/sources.list.d/docker.list', source, use_sudo=True)
    
    # update apt index
    deb.update_index(quiet=False)

    # install docker.io
    utils.deb.install('docker-engine')

    # install docker compose
    cmd = 'pip install -U docker-compose'
    sudo(cmd)

    # add current user to docker group
    current_user = env.user
    cmd = "gpasswd -a {} docker".format(current_user)
    sudo(cmd)
    print(green("User {} added to docker group.".format(current_user)))
    print(red("Remember to log out and back in to use it."))
Пример #7
0
def test_add_apt_key_without_key_id_from_url():
    from fabtools.deb import add_apt_key
    try:
        add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
        run_as_root('apt-key finger | grep -q C4DEFFEB')
    finally:
        run_as_root('apt-key del C4DEFFEB', quiet=True)
Пример #8
0
def test_add_apt_key_with_key_id_from_specific_key_server():
    from fabtools.deb import add_apt_key
    try:
        add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
        run_as_root('apt-key finger | grep -q 7BD9BF62')
    finally:
        run_as_root('apt-key del 7BD9BF62', quiet=True)
Пример #9
0
def key(keyid, filename=None, url=None, keyserver='subkeys.pgp.net',
        update=False):
    """
    Require a PGP key for APT.

    ::

        from fabtools import require

        # Varnish signing key from URL
        require.deb.key('C4DEFFEB', url='http://repo.varnish-cache.org/debian/GPG-key.txt')

        # Nginx signing key from default key server (subkeys.pgp.net)
        require.deb.key('7BD9BF62')

        # From custom key server
        require.deb.key('7BD9BF62', keyserver='keyserver.ubuntu.com')

        # From file
        require.deb.key('7BD9BF62', filename='nginx.asc')

    """

    if not apt_key_exists(keyid):
        add_apt_key(keyid=keyid, filename=filename, url=url,
                    keyserver=keyserver, update=update)
Пример #10
0
def test_add_apt_key_without_key_id_from_file():
    from fabtools.deb import add_apt_key
    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key'
        )
    add_apt_key(filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')
Пример #11
0
def install():
    # add pgp key
    print(green('Adding PGP key'))
    deb.add_apt_key(keyid='58118E89F3A912897C070ADBF76221572C52609D',
                    keyserver='p80.pool.sks-keyservers.net')

    # add https support for apt
    utils.deb.install('apt-transport-https')

    # obtain the LSB version name
    id_, release, codename = run(
        'lsb_release --id --release --codename --short').split("\r\n")

    # add docker apt sources list
    source = "deb https://apt.dockerproject.org/repo {}-{} main".format(
        id_.lower(), codename)
    append('/etc/apt/sources.list.d/docker.list', source, use_sudo=True)

    # update apt index
    deb.update_index(quiet=False)

    # install docker.io
    utils.deb.install('docker-engine')

    # install docker compose
    cmd = 'pip install -U docker-compose'
    sudo(cmd)

    # add current user to docker group
    current_user = env.user
    cmd = "gpasswd -a {} docker".format(current_user)
    sudo(cmd)
    print(green("User {} added to docker group.".format(current_user)))
    print(red("Remember to log out and back in to use it."))
Пример #12
0
def test_add_apt_key_without_key_id_from_url():
    from fabtools.deb import add_apt_key
    try:
        add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
        run_as_root('apt-key finger | grep -q C4DEFFEB')
    finally:
        run_as_root('apt-key del C4DEFFEB', quiet=True)
Пример #13
0
def test_add_apt_key_without_key_id_from_file():
    from fabtools.deb import add_apt_key
    try:
        run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key')
        add_apt_key(filename='/tmp/tmp.fabtools.test.key')
        run_as_root('apt-key finger | grep -q C4DEFFEB')
    finally:
        run_as_root('apt-key del C4DEFFEB', quiet=True)
Пример #14
0
def test_add_apt_key_with_key_id_from_file():
    from fabtools.deb import add_apt_key
    try:
        run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key'
            )
        add_apt_key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
        run_as_root('apt-key finger | grep -q C4DEFFEB')
    finally:
        run_as_root('apt-key del C4DEFFEB', quiet=True)
Пример #15
0
def setup_elasticsearch():
    deb.add_apt_key(
        url='http://packages.elasticsearch.org/GPG-KEY-elasticsearch')
    require.deb.source(
        'elasticsearch',
        'http://packages.elasticsearch.org/elasticsearch/1.1/debian', 'stable',
        'main')
    require.deb.uptodate_index(max_age={'hour': 1})
    require.deb.packages([
        'elasticsearch',
    ])
    sudo('update-rc.d elasticsearch defaults 95 10')
Пример #16
0
def install_nginx():
    '''
    Install NGINX and make it use certs.
    '''
    if system.distrib_id() == 'Debian':
        if not is_arm():
            key_url = 'http://nginx.org/packages/keys/nginx_signing.key'
            require.file(url=key_url)
            deb.add_apt_key('nginx_signing.key')
            su_delete('nginx_signing.key')

            url = 'http://nginx.org/packages/debian/'
            distrib = 'squeeze'
            if system.distrib_release().startswith('7'):
                distrib = 'wheezy'
            elif system.distrib_release().startswith('8'):
                distrib = 'jessie'
            require.deb.source('nginx', url, distrib, 'nginx')

        require.deb.package('nginx')
        contents = PROXIED_SITE_TEMPLATE % {
            'server_name': 'cozy',
            'port': 443,
            'proxy_url': 'http://127.0.0.1:9104'
        }
        require.files.file(
            '/etc/nginx/conf.d/cozy.conf',
            contents=contents,
            use_sudo=True)

    else:
        require.deb.ppa('ppa:nginx/stable')

        require.nginx.site(
            'cozy',
            template_contents=PROXIED_SITE_TEMPLATE,
            enabled=True,
            port=443,
            proxy_url='http://127.0.0.1:9104'
        )
    delete_if_exists('/etc/nginx/conf.d/default.conf')
    delete_if_exists('/etc/nginx/conf.d/example_ssl.conf')
    delete_if_exists('/etc/nginx/sites-enabled/default')
    service.restart('nginx')
    print(green('Nginx successfully installed.'))
def setup_rabbitmq(user=None):
    """ installs official rabbitmq package and sets up user
    """
    deb.add_apt_key(url='http://www.rabbitmq.com/rabbitmq-signing-key-public.asc')
    require.deb.source('rabbitmq-server', 'http://www.rabbitmq.com/debian/', 'testing', 'main')
    require.deb.uptodate_index(max_age={'hour': 1})
    require.deb.packages(['rabbitmq-server',])

    if user is None:
        user = SITE_USER

    envfile = join(home_directory(SITE_USER), 'site/bin/environment.sh')
    secret = randomstring(64)
    sudo('rabbitmqctl delete_user guest')
    sudo('rabbitmqctl add_user %s "%s"' % (user, secret))
    sudo('rabbitmqctl set_permissions -p / %s ".*" ".*" ".*"' % user)
    amqp_url = 'amqp://%s:%s@localhost:5672//' % (SITE_USER, secret)
    sed(envfile, 'DJANGO_BROKER_URL=".*"', 'DJANGO_BROKER_URL="%s"' % amqp_url, use_sudo=True)
Пример #18
0
def install_nginx():
    '''
    Install NGINX and make it use certs.
    '''
    if system.distrib_id() == 'Debian':
        if not is_arm():
            key_url = 'http://nginx.org/packages/keys/nginx_signing.key'
            require.file(url=key_url)
            deb.add_apt_key('nginx_signing.key')
            su_delete('nginx_signing.key')

            url = 'http://nginx.org/packages/debian/'
            distrib = 'squeeze'
            if system.distrib_release().startswith('7'):
                distrib = 'wheezy'
            require.deb.source('nginx', url, distrib, 'nginx')

        require.deb.package('nginx')
        contents = PROXIED_SITE_TEMPLATE % {
            'server_name': 'cozy',
            'port': 443,
            'proxy_url': 'http://127.0.0.1:9104'
        }
        require.files.file(
            '/etc/nginx/conf.d/cozy.conf',
            contents=contents,
            use_sudo=True)

    else:
        require.deb.ppa('ppa:nginx/stable')

        require.nginx.site(
            'cozy',
            template_contents=PROXIED_SITE_TEMPLATE,
            enabled=True,
            port=443,
            proxy_url='http://127.0.0.1:9104'
        )
    delete_if_exists('/etc/nginx/conf.d/default.conf')
    delete_if_exists('/etc/nginx/conf.d/example_ssl.conf')
    delete_if_exists('/etc/nginx/sites-enabled/default')
    service.restart('nginx')
    print(green('Nginx successfully installed.'))
Пример #19
0
def install_passenger():
    """ Installs nginx with passenger support """

    # add pgp key
    print(green('Adding PGP key'))
    deb.add_apt_key(keyid='561F9B9CAC40B2F7', keyserver='keyserver.ubuntu.com')

    # add https support for apt
    utils.deb.install('apt-transport-https')

    # We obtain the Ubuntu version name
    print 'You need to specify the Ubuntu version'
    p_t = 'Do you wish to see the version names?'
    p_r = prompt(p_t, default='yes')
    if (p_r == 'yes'):
        print('12.04 -> ' + green('Precise', True) + ' Pangolin')
        print('12.10 -> ' + green('Quantal', True) + ' Quetzal')
        print('13.04 -> ' + green('Raring', True) + ' Ringtail')
        print('13.10 -> ' + green('Saucy', True) + ' Salamander')
        print('14.04 -> ' + green('Trusty', True) + ' Thar')
    p_t = 'What version are you deploying to? (only first name needed)'
    version = prompt(p_t, default='Trusty')
    version = version.lower()

    # ubuntu 12.04 (precise)
    cmd = (
        'echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger ' +
        version + ' main" > /etc/apt/sources.list.d/passenger.list')
    sudo(cmd)
    cmd = 'sudo chmod 644 /etc/apt/sources.list.d/passenger.list'
    sudo(cmd)

    # update apt index
    deb.update_index(quiet=False)

    print(green('Installing nginx and passenger'))
    utils.deb.install('nginx-full')
    utils.deb.install('passenger')

    print(green('Activating passenger'))
    uncomment('/etc/nginx/nginx.conf', 'passenger_root', use_sudo=True)
    uncomment('/etc/nginx/nginx.conf', 'passenger_ruby', use_sudo=True)
Пример #20
0
def install_passenger():
    """ Installs nginx with passenger support """

    # add pgp key
    print(green('Adding PGP key'))
    deb.add_apt_key(keyid='561F9B9CAC40B2F7', keyserver='keyserver.ubuntu.com')

    # add https support for apt
    utils.deb.install('apt-transport-https')

    # We obtain the Ubuntu version name
    print 'You need to specify the Ubuntu version'
    p_t = 'Do you wish to see the version names?'
    p_r = prompt(p_t, default='yes')
    if (p_r == 'yes'):
        print('12.04 -> ' + green('Precise', True) + ' Pangolin')
        print('12.10 -> ' + green('Quantal', True) + ' Quetzal')
        print('13.04 -> ' + green('Raring', True) + ' Ringtail')
        print('13.10 -> ' + green('Saucy', True) + ' Salamander')
        print('14.04 -> ' + green('Trusty', True) + ' Thar')
    p_t = 'What version are you deploying to? (only first name needed)'
    version = prompt(p_t, default='Trusty')
    version = version.lower()

    # ubuntu 12.04 (precise)
    cmd = ('echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger '
           + version + ' main" > /etc/apt/sources.list.d/passenger.list')
    sudo(cmd)
    cmd = 'sudo chmod 644 /etc/apt/sources.list.d/passenger.list'
    sudo(cmd)

    # update apt index
    deb.update_index(quiet=False)

    print(green('Installing nginx and passenger'))
    utils.deb.install('nginx-full')
    utils.deb.install('passenger')

    print(green('Activating passenger'))
    uncomment('/etc/nginx/nginx.conf', 'passenger_root', use_sudo=True)
    uncomment('/etc/nginx/nginx.conf', 'passenger_ruby', use_sudo=True)
Пример #21
0
def test_add_apt_key_with_key_id_from_specific_key_server():
    from fabtools.deb import add_apt_key
    reset()
    add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')
def setup_elasticsearch():
    deb.add_apt_key(url='http://packages.elasticsearch.org/GPG-KEY-elasticsearch')
    require.deb.source('elasticsearch', 'http://packages.elasticsearch.org/elasticsearch/1.1/debian', 'stable', 'main')
    require.deb.uptodate_index(max_age={'hour': 1})
    require.deb.packages(['elasticsearch',])
    sudo('update-rc.d elasticsearch defaults 95 10')
Пример #23
0
def test_add_apt_key_with_key_id_from_file():
    from fabtools.deb import add_apt_key
    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key')
    add_apt_key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')
Пример #24
0
def test_add_apt_key_without_key_id_from_url():
    from fabtools.deb import add_apt_key
    reset()
    add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')
Пример #25
0
def test_add_apt_key_without_key_id_from_default_key_server():
    from fabtools.deb import add_apt_key
    reset()
    add_apt_key(keyid='7BD9BF62')
    run_as_root('apt-key finger | grep -q 7BD9BF62')
Пример #26
0
def test_add_apt_key_without_key_id_from_url():
    from fabtools.deb import add_apt_key
    reset()
    add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')
Пример #27
0
def test_add_apt_key_with_key_id_from_specific_key_server():
    from fabtools.deb import add_apt_key
    reset()
    add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')
Пример #28
0
def add_apt_sources():
    deb.add_apt_key(url='http://www.rabbitmq.com/rabbitmq-signing-key-public.asc')
    require.deb.source('rabbitmq-server', 'http://www.rabbitmq.com/debian/', 'testing', 'main')
    require.deb.uptodate_index(max_age={'hour': 1})
Пример #29
0
def deb():
    """
    Check deb functions.
    """

    from fabtools import require
    from fabtools import deb
    from fabtools.utils import run_as_root

    # deb.add_apt_key with keyid
    reset()
    deb.add_apt_key(keyid='C4DEFFEB', url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    deb.add_apt_key(keyid='7BD9BF62')
    deb.add_apt_key(keyid='7BD9BF62') # Intentionally repeated
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    deb.add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key')
    deb.add_apt_key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')


    # deb.add_apt_key without keyid
    reset()
    deb.add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    deb.add_apt_key(keyid='7BD9BF62')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key')
    deb.add_apt_key(filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    # require.deb.key
    reset()
    require.deb.key(keyid='C4DEFFEB', url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    require.deb.key(keyid='7BD9BF62')
    require.deb.key(keyid='7BD9BF62') # Intentionally repeated
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    require.deb.key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key')
    require.deb.key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')
Пример #30
0
def add_apt_sources():
    deb.add_apt_key(
        url='http://www.rabbitmq.com/rabbitmq-signing-key-public.asc')
    require.deb.source('rabbitmq-server', 'http://www.rabbitmq.com/debian/',
                       'testing', 'main')
    require.deb.uptodate_index(max_age={'hour': 1})
Пример #31
0
def deb():
    """
    Check deb functions.
    """

    from fabtools import require
    from fabtools import deb
    from fabtools.utils import run_as_root

    # deb.add_apt_key with keyid
    reset()
    deb.add_apt_key(keyid='C4DEFFEB',
                    url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    deb.add_apt_key(keyid='7BD9BF62')
    deb.add_apt_key(keyid='7BD9BF62')  # Intentionally repeated
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    deb.add_apt_key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key'
        )
    deb.add_apt_key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    # deb.add_apt_key without keyid
    reset()
    deb.add_apt_key(url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    deb.add_apt_key(keyid='7BD9BF62')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key'
        )
    deb.add_apt_key(filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    # require.deb.key
    reset()
    require.deb.key(keyid='C4DEFFEB',
                    url='http://repo.varnish-cache.org/debian/GPG-key.txt')
    run_as_root('apt-key finger | grep -q C4DEFFEB')

    reset()
    require.deb.key(keyid='7BD9BF62')
    require.deb.key(keyid='7BD9BF62')  # Intentionally repeated
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    require.deb.key(keyid='7BD9BF62', keyserver='keyserver.ubuntu.com')
    run_as_root('apt-key finger | grep -q 7BD9BF62')

    reset()
    run('wget http://repo.varnish-cache.org/debian/GPG-key.txt -O /tmp/tmp.fabtools.test.key'
        )
    require.deb.key(keyid='C4DEFFEB', filename='/tmp/tmp.fabtools.test.key')
    run_as_root('apt-key finger | grep -q C4DEFFEB')