Untested code for week 1

This commit is contained in:
Andrew Tomaka 2014-01-15 15:09:51 -05:00
parent 1d1ee39ca7
commit 41f635afaa
8 changed files with 137 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
modules/*
.tmp/
modules/

2
.librarian/puppet/config Normal file
View file

@ -0,0 +1,2 @@
---
LIBRARIAN_PUPPET_DESTRUCTIVE: "false"

6
Puppetfile Normal file
View file

@ -0,0 +1,6 @@
forge "http://forge.puppetlabs.com"
mod 'camptocamp/augeas', '0.0.1'
mod 'puppetlabs/apache', '0.10.0'
mod 'saz/ssh', '1.2.0'

18
Puppetfile.lock Normal file
View file

@ -0,0 +1,18 @@
FORGE
remote: http://forge.puppetlabs.com
specs:
camptocamp/augeas (0.0.1)
puppetlabs/apache (0.10.0)
puppetlabs/concat (>= 1.0.0)
puppetlabs/stdlib (>= 2.4.0)
puppetlabs/concat (1.1.0-rc1)
puppetlabs/stdlib (>= 3.0.0)
puppetlabs/stdlib (4.1.0)
saz/ssh (1.2.0)
puppetlabs/stdlib (>= 2.2.1)
DEPENDENCIES
camptocamp/augeas (= 0.0.1)
puppetlabs/apache (= 0.10.0)
saz/ssh (= 1.2.0)

36
bootstrap.sh Normal file
View file

@ -0,0 +1,36 @@
#!/bin/bash
# TO BE RUN AS ROOT
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "This script must be run as root"
exit
fi
# SET TIMESTAMP
echo "America/New_York" | tee /etc/timezone
dpkg-reconfigure --frontend noninteractive tzdata
# UPGRADE ALL CURRENT PACKAGES
apt-get upgrade -y && apt-get dist-upgrade -y
# INSTALL GIT
apt-get install git
# INSTALL PUPPET
wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
dpkg -i puppetlabs-release-precise.deb
apt-get update
apt-get install puppet -y
gem install librarian-puppet
# CLONE PUPPET REPOSITORY
cd /tmp
git clone https://github.com/atomaka/tc362.git puppet
# INSTALL MODULES
cd puppet
librarian-puppet install
# RUN MANIFEST
puppet manifest apply manifests/site.pp --modulepath=modules/

24
files/index.html Normal file
View file

@ -0,0 +1,24 @@
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Hello World</title>
<style>
h1 {
position: relative;
top: 50%;
transform: translateY(-50%);
margin: 0;
text-align: center;
color: white;
background: black;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

1
files/keys/atomaka Normal file
View file

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRwQ+1wZ4rSIQyAOG/G+4c9tKO4h716hQEiD95hw44TIQ4rdU1xqStEdV+vLgHpk/vFDC1gNlesRGh/PynEObPIbUdAypnSIg6qfLGCD0HcyGqU6dxzynQ8tgA23qLLMxGMG7kPjxSk3LVY6u+I/KHqArJjDqXcns7kN26LimJt4azHBI165Z7q+xuOtgDApdRecyvkIcjrl1oveHjOnVTZl1l78fqr1nTmvHkkeWGHxdM2IE2eFxGEpb6yyjNzxpX8JsFFXJiuq+fa+1Xj7dA3QZjV+BWUfhj2LSoOfWRgxy4oUhxfbDbOC+pBFWEKA1lDnRZ+nBIw1nXmF7hpBOx atomaka@gmail.com

47
manifests/site.pp Normal file
View file

@ -0,0 +1,47 @@
# USERS
user { 'atomaka':
ensure => 'present',
groups => ['sudo'],
managehome => true,
shell => '/bin/zsh',
require => Package['zsh'],
}
file { '/home/atomaka/.ssh':
ensure => directory,
owner => 'atomaka',
group => 'atomaka',
mode => '0700',
require => User['atomaka'],
}
file { '/home/atomaka/.ssh/authorized_keys':
ensure => present,
owner => 'atomaka',
group => 'atomaka',
mode => '0600',
content => file('/tmp/puppet/files/keys/atoamka'),
require => File['/home/atomaka/.ssh'],
}
# PACKAGES
package { 'mosh': }
package { 'zsh': }
# CLASSES
include augeas
class { 'ssh::server':
require => Class['augeas'],
}
class { 'apache': }
# CONFIGURATIONS
ssh::server::configline { 'PermitRootLogin': value => 'no' }
ssh::server::configline { 'PasswordAuthentication': value => 'no' }
ssh::server::configline { 'AllowUsers/1': value => 'atomaka' }
# FILES
file { '/var/www/index.html':
ensure => present,
content => file('/tmp/puppet/files/index.html'),
require => Class['apache'],
}