Skip to content

Commit

Permalink
Added Ansible playbooks and examples
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Apr 12, 2017
1 parent c3317a5 commit 36f8cc3
Show file tree
Hide file tree
Showing 20 changed files with 612 additions and 0 deletions.
30 changes: 30 additions & 0 deletions ansible/aws-ec2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
- name: Create a new Demo EC2 instance
hosts: localhost
gather_facts: False

vars:
region: us-west-2
instance_type: t2.micro
ami: ami-6f68cf0f # Redhat
keypair: phpkey # pem file name

tasks:

- name: Create an ec2 instance
ec2:
key_name: "{{ keypair }}"
aws_access_key: "GENERATE_KEY_FROM_AWS_SITE"
aws_secret_key: "GENERATE_KEY_FROM_AWS_SITE"
group: launch-wizard-2 # security group name
instance_type: "{{ instance_type}}"
image: "{{ ami }}"
wait: true
region: "{{ region }}"
count: 1 # default
count_tag:
Name: "Demo"
instance_tags:
Name: "Demo"
vpc_subnet_id: "subnet-ff14bab6"
assign_public_ip: yes
register: ec2
17 changes: 17 additions & 0 deletions ansible/conditiondemo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
- hosts: all
tasks:
- name: Print the ansible_os_family value
debug:
msg: '{{ ansible_os_family }}'
- name: Ensure the httpd package is updated
yum:
name: httpd
state: latest
become: True
when: ansible_os_family == 'RedHat'
- name: Ensure the apache2 package is updated
apt:
name: apache2
state: latest
become: True
when: ansible_os_family == 'Debian'
15 changes: 15 additions & 0 deletions ansible/delegate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
- hosts: all
tasks:
- name: Count processes running on the remote system
shell: ps | wc -l
register: remote_processes_number
- name: Print remote running processes
debug:
msg: '{{ remote_processes_number.stdout }}'
- name: Count processes running on the local system
shell: ps | wc -l
delegate_to: localhost
register: local_processes_number
- name: Print local running processes
debug:
msg: '{{ local_processes_number.stdout }}'
5 changes: 5 additions & 0 deletions ansible/firstplaybook/firtspalybook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- name: Manage Tomcat
hosts: all

roles:
- { role: tomcat, tags: ['tomcat'] }
29 changes: 29 additions & 0 deletions ansible/firstplaybook/roles/tomcat/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
language: python
python: "2.7"

# Use the new container infrastructure
sudo: false

# Install ansible
addons:
apt:
packages:
- python-pip

install:
# Install ansible
- pip install ansible

# Check ansible version
- ansible --version

# Create ansible.cfg with correct roles_path
- printf '[defaults]\nroles_path=../' >ansible.cfg

script:
# Basic role syntax check
- ansible-playbook tests/test.yml -i tests/inventory --syntax-check

notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/
38 changes: 38 additions & 0 deletions ansible/firstplaybook/roles/tomcat/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Role Name
=========

A brief description of the role goes here.

Requirements
------------

Any pre-requisites that may not be covered by Ansible itself or the role should be mentioned here. For instance, if the role uses the EC2 module, it may be a good idea to mention in this section that the boto package is required.

Role Variables
--------------

A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well.

Dependencies
------------

A list of other roles hosted on Galaxy should go here, plus any details in regards to parameters that may need to be set for other roles, or variables that are used from other roles.

Example Playbook
----------------

Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:

- hosts: servers
roles:
- { role: username.rolename, x: 42 }

License
-------

BSD

Author Information
------------------

An optional section for the role authors to include contact information, or a website (HTML is not allowed).
2 changes: 2 additions & 0 deletions ansible/firstplaybook/roles/tomcat/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
# defaults file for tomcat
2 changes: 2 additions & 0 deletions ansible/firstplaybook/roles/tomcat/handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
# handlers file for tomcat
222 changes: 222 additions & 0 deletions ansible/firstplaybook/roles/tomcat/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
galaxy_info:
author: your name
description: your description
company: your company (optional)

# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker

# Some suggested licenses:
# - BSD (default)
# - MIT
# - GPLv2
# - GPLv3
# - Apache
# - CC-BY
license: license (GPLv2, CC-BY, etc)

min_ansible_version: 1.2

# Optionally specify the branch Galaxy will use when accessing the GitHub
# repo for this role. During role install, if no tags are available,
# Galaxy will use this branch. During import Galaxy will access files on
# this branch. If travis integration is cofigured, only notification for this
# branch will be accepted. Otherwise, in all cases, the repo's default branch
# (usually master) will be used.
#github_branch:

#
# Below are all platforms currently available. Just uncomment
# the ones that apply to your role. If you don't see your
# platform on this list, let us know and we'll get it added!
#
#platforms:
#- name: OpenBSD
# versions:
# - all
# - 5.6
# - 5.7
# - 5.8
# - 5.9
# - 6.0
#- name: Fedora
# versions:
# - all
# - 16
# - 17
# - 18
# - 19
# - 20
# - 21
# - 22
# - 23
# - 24
# - 25
#- name: DellOS
# versions:
# - all
# - 10
# - 6
# - 9
#- name: MacOSX
# versions:
# - all
# - 10.10
# - 10.11
# - 10.12
# - 10.7
# - 10.8
# - 10.9
#- name: Synology
# versions:
# - all
# - any
#- name: Junos
# versions:
# - all
# - any
#- name: GenericBSD
# versions:
# - all
# - any
#- name: Void Linux
# versions:
# - all
# - any
#- name: GenericLinux
# versions:
# - all
# - any
#- name: NXOS
# versions:
# - all
# - any
#- name: IOS
# versions:
# - all
# - any
#- name: Amazon
# versions:
# - all
# - 2013.03
# - 2013.09
# - 2016.03
# - 2016.09
#- name: ArchLinux
# versions:
# - all
# - any
#- name: FreeBSD
# versions:
# - all
# - 10.0
# - 10.1
# - 10.2
# - 10.3
# - 11.0
# - 8.0
# - 8.1
# - 8.2
# - 8.3
# - 8.4
# - 9.0
# - 9.1
# - 9.1
# - 9.2
# - 9.3
#- name: Ubuntu
# versions:
# - all
# - lucid
# - maverick
# - natty
# - oneiric
# - precise
# - quantal
# - raring
# - saucy
# - trusty
# - utopic
# - vivid
# - wily
# - xenial
# - yakkety
#- name: Debian
# versions:
# - all
# - etch
# - jessie
# - lenny
# - sid
# - squeeze
# - stretch
# - wheezy
#- name: Alpine
# versions:
# - all
# - any
#- name: EL
# versions:
# - all
# - 5
# - 6
# - 7
#- name: Windows
# versions:
# - all
# - 2012R2
#- name: SmartOS
# versions:
# - all
# - any
#- name: opensuse
# versions:
# - all
# - 12.1
# - 12.2
# - 12.3
# - 13.1
# - 13.2
#- name: SLES
# versions:
# - all
# - 10SP3
# - 10SP4
# - 11
# - 11SP1
# - 11SP2
# - 11SP3
# - 11SP4
# - 12
# - 12SP1
#- name: GenericUNIX
# versions:
# - all
# - any
#- name: Solaris
# versions:
# - all
# - 10
# - 11.0
# - 11.1
# - 11.2
# - 11.3
#- name: eos
# versions:
# - all
# - Any

galaxy_tags: []
# List tags for your role here, one per line. A tag is
# a keyword that describes and categorizes the role.
# Users find roles by searching for tags. Be sure to
# remove the '[]' above if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of
# alphanumeric characters. Maximum 20 tags per role.

dependencies: []
# List your role dependencies here, one per line.
# Be sure to remove the '[]' above if you add dependencies
# to this list.
6 changes: 6 additions & 0 deletions ansible/firstplaybook/roles/tomcat/tasks/configure_tomcat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- name: "deploy setenv.sh"
template: src=setenv.j2 dest=/usr/local/apache-tomcat-8.0.23/bin/setenv.sh owner=root group=root

- name: "Deploy startup script"
template: src=tomcat.j2 dest=/etc/init.d/tomcat owner=root mode=700

6 changes: 6 additions & 0 deletions ansible/firstplaybook/roles/tomcat/tasks/create_users.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- name: "Create tomcat group"
group: name=tomcat gid=5000

- name: "Create Athoris User"
user: name=tomcat comment="Tomcat App User" uid=5000 group=5000

Loading

0 comments on commit 36f8cc3

Please sign in to comment.