Reorganized some things, added relevant REAME files to some of the the tools, and fleshed out future plans.

This commit is contained in:
Michael Griffin 2013-04-15 15:21:40 -07:00
parent 8c5f1ec042
commit 4adb679c0a
36 changed files with 78 additions and 36 deletions

View File

@ -4,3 +4,5 @@ Plans
* Look into using Jinja2 to adhere with DRY principles. If an app comes in a tar archive, have a workflow for extracting apps from those archives, same thing if it comes in a dmg, or a zip. * Look into using Jinja2 to adhere with DRY principles. If an app comes in a tar archive, have a workflow for extracting apps from those archives, same thing if it comes in a dmg, or a zip.
* Look into the ability to change directories for multiple commands as upposed to having to change directories on each command. * Look into the ability to change directories for multiple commands as upposed to having to change directories on each command.
* Ensure generalization of playbooks and assist distribution by replacing hosts and usernames with code that will allow them to be set on run time. * Ensure generalization of playbooks and assist distribution by replacing hosts and usernames with code that will allow them to be set on run time.
* Consider streamlining playbook creation by specifying the install-type (app, homebrew, pkg, apt, yum) and letting conditional execution pick the correct playbook to run based on that variable. This would allow tools that can be manually installed, or installed through a package management service like homebrew or apt, to have the ability to be installed different ways.
* Ensure that the tool created on top of Ansible has the abiltiy to check the version of installed mac applications, and not reinstall them if they match, unless a user forces an reinstall. Also provide the abiltiy to manipulate default file type handlers.

View File

@ -1,7 +1,7 @@
Ansible Playbooks Ansible Playbooks
================= =================
**The following only applies to some of these playbooks. The majority have been created to provision Mac development machines. Eventually they will be transformed to handle different operating systems and other variables, such as versions.** **The majority of these playbooks have been created to provision Mac development machines. I am going to separate these playbooks into their own separate git repos, or not, depending on how I decide I want them accessable to the configuration managament tool I'll be buiiling on top of Ansible. Eventually they will be transformed to handle different operating systems and other variables, such as versions.**
Configure servers in a snap with these concise Ansible playbooks! Configure servers in a snap with these concise Ansible playbooks!
@ -21,10 +21,10 @@ Future Playbooks:
* **PHP** - open source highlevel interprited programming language * **PHP** - open source highlevel interprited programming language
* **RVM** - open source Ruby version and environment manager * **RVM** - open source Ruby version and environment manager
Before running these Ansible playbooks, or any Ansible commands for that matter, it is essential that you have your publick SSH keys copied to your server's `~/.ssh/authorized_keys` file. The following command will copy your public key from your management computer, to the server: Before running these Ansible playbooks, or any Ansible commands for that matter, it is essential that you have your publick SSH keys copied to your server's `~/.ssh/authorized_keys` file. If you decide that this will make life too easy for you, feel free to use the `-k` flag when running `ansible-playbook` (or `ansible` for that matter too), which will tell Ansible to prompt you for your SSH password. The following command will copy your public key from your management computer, to the server:
# Don't space out and forget to ensure that you replace the username and ip/host address with your specific credentials. # Don't space out and forget to ensure that you replace the username and ip/host address with your specific credentials.
$ scp ~/.ssh/id_rsa.pub username@111.222.333.444:~/.ssh/authorized_keys $ scp ~/.ssh/id_rsa.pub username@111.222.333.444:~/.ssh/authorized_keys # You could also perform the same action against your Ansible hosts using the copy module and the **-k** flag to promp you for your SSH password.
Then all you have to do, as long as you have properly installed Ansible, and have added it's location to your $PATH, is run the following command to confirm that everything is hunky-dory: Then all you have to do, as long as you have properly installed Ansible, and have added it's location to your $PATH, is run the following command to confirm that everything is hunky-dory:

View File

@ -0,0 +1,3 @@
---
- name: Installing $app_name_pretty
homebrew: name=$app_name state=installed update_homebrew=yes

4
iterm/README.md Normal file
View File

@ -0,0 +1,4 @@
iTerm
=====
This Ansible playbook installs iTerm (2), a powerfull and highly customizable, feature-rich, command line interface replacement for Terminal.

View File

@ -1,15 +1,14 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: app install_type: app
app_name: iTerm app_name: iTerm
app_name_pretty: iTerm app_name_pretty: iTerm
app_url: https://copy.com/HTIIPAwoiKVY app_url: https://copy.com/HTIIPAwoiKVY
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/zip.yaml - include: ../install-type/zip.yaml

4
limechat/README.md Normal file
View File

@ -0,0 +1,4 @@
LimeChat
========
This Ansible playbook installs LimeChat, a lightweight and feature rich IRC client for Mac.

View File

@ -1,5 +1,5 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
@ -10,6 +10,6 @@
app_name_pretty: LimeChat app_name_pretty: LimeChat
app_url: https://downloads.sourceforge.net/project/limechat/limechat/LimeChat_2.34.tbz?use_mirror=master app_url: https://downloads.sourceforge.net/project/limechat/limechat/LimeChat_2.34.tbz?use_mirror=master
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/tar.yaml - include: ../install-type/tar.yaml

View File

0
nginx/nginx.yaml Normal file
View File

0
nginx/tasks/tasks.yaml Normal file
View File

View File

View File

0
php/php.yaml Normal file
View File

0
php/tasks/tasks.yaml Normal file
View File

0
php/templates/php.ini.j2 Normal file
View File

View File

@ -2,9 +2,8 @@
- hosts: $hosts - hosts: $hosts
user: $user user: $user
sudo: yes sudo: yes
gather_facts: false
vars_files: vars_files:
- local-setup-vars.yaml - setup-vars.yaml
tasks: tasks:
- name: Create Ansible downloads directory - name: Create Ansible downloads directory
file: path=$downloads state=directory file: path=$downloads state=directory

4
sourcetree/README.md Normal file
View File

@ -0,0 +1,4 @@
SourceTree
==========
This Ansible playbook installs SourceTree, a rock solid Git client for Mac and Windows.

View File

@ -1,5 +1,5 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
@ -11,6 +11,6 @@
app_url: https://copy.com/RDxUBW9uhWiQ/SourceTree-1.5.8.dmg?download=1 app_url: https://copy.com/RDxUBW9uhWiQ/SourceTree-1.5.8.dmg?download=1
mount_path: /Volumes/SourceTree/ mount_path: /Volumes/SourceTree/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.yaml - include: ../install-type/dmg.yaml

View File

@ -0,0 +1,4 @@
Sublime Text
============
This Ansible playbook installs Sublime Text, a powerfull, performant, extensable, and versitile code editor. It also sets up `subl` and `sublime` symlinks in your `/usr/bin/` directory for the highly useful Sublime Text `subl` command.

View File

@ -1,9 +1,8 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: app install_type: app
app_name: Sublime\ Text app_name: Sublime\ Text
@ -11,9 +10,9 @@
app_url: http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203021.dmg app_url: http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%20Build%203021.dmg
mount_path: /Volumes/Sublime\ Text/ mount_path: /Volumes/Sublime\ Text/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.yaml - include: ../install-type/dmg.yaml
- name: Create symlink subl for Sublime Text's subl command - name: Create symlink subl for Sublime Text's subl command
file: src=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl dest=/usr/bin/subl state=link file: src=/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl dest=/usr/bin/subl state=link
- name: Create symlink sublime for Sublime Text's subl command - name: Create symlink sublime for Sublime Text's subl command

4
transmission/README.md Normal file
View File

@ -0,0 +1,4 @@
Transmission
============
This Ansible playbook installs Transmission, a lightwieght bittorrent client for Mac and Linux.

View File

@ -1,9 +1,8 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: app install_type: app
app_name: Transmission app_name: Transmission
@ -11,6 +10,6 @@
app_url: https://copy.com/jTqaA0JWmTmn/Transmission-2.77.dmg?download=1 app_url: https://copy.com/jTqaA0JWmTmn/Transmission-2.77.dmg?download=1
mount_path: /Volumes/Transmission/ mount_path: /Volumes/Transmission/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.yaml - include: ../install-type/dmg.yaml

View File

@ -0,0 +1,12 @@
---
- include: ../setup.yaml
- hosts: $hosts
user: $user
vars:
app_name: tree
app_name_pretty: tree
vars_files:
- ../setup-vars.yaml
tasks:
- include: ../install-type/homebrew.yaml

4
vagrant/README.md Normal file
View File

@ -0,0 +1,4 @@
Vagrant
=======
This Ansible playbook installs Vagrant, an powerful tool which automates virtualization and provisionment.

View File

@ -1,9 +1,8 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: pkg install_type: pkg
install_target: /Volumes/OSX install_target: /Volumes/OSX
@ -12,6 +11,6 @@
app_url: http://files.vagrantup.com/packages/64e360814c3ad960d810456add977fd4c7d47ce6/Vagrant.dmg app_url: http://files.vagrantup.com/packages/64e360814c3ad960d810456add977fd4c7d47ce6/Vagrant.dmg
mount_path: /Volumes/Vagrant/ mount_path: /Volumes/Vagrant/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.pkg - include: ../install-type/dmg.pkg

4
virtualbox/README.md Normal file
View File

@ -0,0 +1,4 @@
VirtualBox
==========
This Ansible playbook installs VirtualBox, a home and enterprise virtualization software package.

View File

@ -1,9 +1,8 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: pkg install_type: pkg
install_target: /Volumes/OSX install_target: /Volumes/OSX
@ -12,6 +11,6 @@
app_url: http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2.12-84980-OSX.dmg app_url: http://download.virtualbox.org/virtualbox/4.2.12/VirtualBox-4.2.12-84980-OSX.dmg
mount_path: /Volumes/VirtualBox/ mount_path: /Volumes/VirtualBox/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.yaml - include: ../install-type/dmg.yaml

View File

@ -0,0 +1,4 @@
VLC
===
This Ansible playbook installs VLC, a lightweigt and versitile media player for Mac, Linux, and Windows, and will eventually have the ability to make it the default file handler for specified file types.

View File

@ -1,9 +1,8 @@
--- ---
- include: ../local-setup.yaml - include: ../setup.yaml
- hosts: $hosts - hosts: $hosts
user: $user user: $user
gather_facts: false
vars: vars:
install_type: app install_type: app
app_name: VLC app_name: VLC
@ -11,6 +10,6 @@
app_url: https://copy.com/8WKZ3x1ZWOIC/VLC-2.0.6.dmg?download=1 app_url: https://copy.com/8WKZ3x1ZWOIC/VLC-2.0.6.dmg?download=1
mount_path: /Volumes/vlc-2.0.6/ mount_path: /Volumes/vlc-2.0.6/
vars_files: vars_files:
- ../local-setup-vars.yaml - ../setup-vars.yaml
tasks: tasks:
- include: ../file/dmg.yaml - include: ../install-type/dmg.yaml