Skip to content

Instantly share code, notes, and snippets.

@plandolt
Created January 30, 2017 08:05
Show Gist options
  • Save plandolt/f916bbd329b13367cb7101abf9c7640d to your computer and use it in GitHub Desktop.
Save plandolt/f916bbd329b13367cb7101abf9c7640d to your computer and use it in GitHub Desktop.
# playbook log.yml
---
- name: LOG Provisioning
hosts: log
gather_facts: false
roles:
- { role: cloudscale/run, tags: cloudscale }
- { role: common/common, tags: common }
# role cloudscale/run:
---
- name: setup and start vm
delegate_to: 127.0.0.1
cloudscale_server:
name: "{{ inventory_hostname }}"
state: running
image: "{{ image }}"
flavor: "{{ flavor }}"
ssh_keys: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
use_private_network: "{{ use_private_network }}"
user_data: "{{ lookup('file', 'user_data') }}"
api_token: "{{ cloudscale.token }}"
register: vm
- set_fact:
ansible_ssh_host: "{{ vm.interfaces[0].addresses[0].address }}"
- name: wait for ssh to start on ansible port
delegate_to: 127.0.0.1
wait_for:
port: "{{ ansible_ssh_port }}"
host: "{{ vm.interfaces[0].addresses[0].address }}"
delay: 5
# role common/common:
---
- name: install common packages
become: true
apt: pkg={{ item }} state=latest update_cache=yes cache_valid_time=3600
with_items:
- vim
- curl
- htop
- git
- joe
# cloud init userdata:
#cloud-config
## Example: Install Latest Packages
package_update: true
package_upgrade: true
package_reboot_if_required: true
packages:
- python
users:
- name: ansible
ssh-authorized-keys:
- ssh-rsa AAA...
sudo: ['ALL=(ALL) NOPASSWD:ALL']
groups: sudo
shell: /bin/bash
timezone: Europe/Zurich
locale: en_US.UTF-8
runcmd:
- sed -i -e '/^Port/s/^.*$/Port 6779/' /etc/ssh/sshd_config
- sed -i -e '/^PermitRootLogin/s/^.*$/PermitRootLogin no/' /etc/ssh/sshd_config
- sed -i -e '$aAllowUsers ansible' /etc/ssh/sshd_config
- service ssh restart
phone_home:
url: https://...
post: all
tries: 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment