Slide 16
Slide 16 text
Fabric
@task!
def install_salt(master='salt.c9.io', name=None, set_hostname=True):!
'''!
Usage install_salt:master='master.salt.hostname',name='minion-name',set_hostname='yes'!
'''!
distro = run('lsb_release -s -c')!
if distro == 'wheezy':!
run('echo deb http://debian.saltstack.com/debian wheezy-saltstack main\!
| sudo tee /etc/apt/sources.list.d/saltstack.list')!
run('wget -q -O- “http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key”\!
| sudo apt-key add -')!
!
run('sudo apt-get update')!
run('sudo apt-get -y install salt-minion')!
!
files.uncomment('/etc/salt/minion', 'master:.*', use_sudo=True)!
files.sed('/etc/salt/minion', 'master:.*', 'master: %s' % master, use_sudo=True)!
if name:!
files.uncomment('/etc/salt/minion', 'id:.*', use_sudo=True)!
files.sed('/etc/salt/minion', 'id:.*', 'id: %s' % name, use_sudo=True)!
!
if set_hostname:!
sudo('hostname %s' % name)!
sudo('echo %s > /etc/hostname' % name)!
!
run('sudo service salt-minion restart')!
16
fabric for salt