add vpcaccess role
[awsible] / roles / vpcaccess / tasks / main.yml
diff --git a/roles/vpcaccess/tasks/main.yml b/roles/vpcaccess/tasks/main.yml
new file mode 100644 (file)
index 0000000..10c394a
--- /dev/null
@@ -0,0 +1,90 @@
+---
+- action: ec2_facts
+
+- name: Enable IP Forwarding
+  with_items:
+  - { "var": "net.ipv4.ip_forward", "val": 1 }
+  - { "var": "net.ipv4.conf.eth0.send_redirects", "val": 0 }
+  sysctl:
+    state: present
+    name: "{{ item.var }}"
+    value: "{{ item.val }}"
+    sysctl_set: yes
+    reload: yes
+    ignoreerrors: yes
+
+- name: naming things
+  set_fact:
+    environment_name: "{{ ACCT_NAME }}"
+- name: Find CIDR
+  set_fact:
+    subnet_to_announce: "{{ vpc.vpc.cidr_block }}"
+
+- name: enable PAT
+  iptables:
+    table: nat
+    chain: POSTROUTING
+    out_interface: eth0
+    source: "{{ vpc.vpc.cidr_block }}"
+    jump: MASQUERADE
+- command: /etc/init.d/iptables save
+  args:
+    creates: /etc/sysconfig/iptables
+
+- name: Attach EIP
+  delegate_to: localhost
+  become: no
+  ec2_eip:
+    state: present
+    in_vpc: true
+    device_id: "{{ ansible_ec2_instance_id }}"
+    region: "{{ ansible_ec2_placement_region }}"
+    reuse_existing_ip_allowed: yes
+  register: eip_attachment
+
+- name: Refresh inventory
+  when: eip_attachment|changed
+  meta: refresh_inventory
+
+- name: Install support scripts
+  with_items:
+  - routeUpdater.py
+  copy:
+    src: "{{ item }}"
+    dest: "/usr/local/bin/{{ item }}"
+    owner: root
+    group: root
+    mode: "0755"
+
+- name: Take over private VPC routing
+  command: /usr/local/bin/routeUpdater.py
+
+- name: Install Quagga
+  yum:
+    name: quagga
+    state: present
+
+- name: Configure Quagga
+  with_items:
+  - ripd.conf
+  - zebra.conf
+  template:
+    src: "{{ item }}.j2"
+    dest: "/etc/quagga/{{ item }}"
+    owner: quagga
+    group: quagga
+    mode: "0640"
+  notify:
+  - restart ripd
+  - restart zebra
+
+- name: Enable Quagga
+  with_items:
+  - ripd
+  - zebra
+  service:
+    name: "{{ item }}"
+    enabled: yes
+  notify:
+  - restart ripd
+  - restart zebra