├── hosts ├── playbooks ├── templates │ ├── persistence.conf │ ├── boot │ │ └── grub │ │ │ ├── device.map.j2 │ │ │ └── grub.cfg.j2 │ └── config.boot.default.ec2 ├── roles │ ├── build-disk │ │ ├── tests │ │ │ ├── inventory │ │ │ └── test.yml │ │ ├── templates │ │ │ ├── persistence.conf │ │ │ ├── boot │ │ │ │ └── grub │ │ │ │ │ ├── device.map.j2 │ │ │ │ │ └── grub.cfg.j2 │ │ │ └── config.boot.default.ec2 │ │ ├── handlers │ │ │ └── main.yml │ │ ├── vars │ │ │ └── main.yml │ │ ├── files │ │ │ └── sources.list │ │ ├── molecule │ │ │ └── default │ │ │ │ ├── converge.yml │ │ │ │ ├── verify.yml │ │ │ │ ├── molecule.yml │ │ │ │ └── INSTALL.rst │ │ ├── defaults │ │ │ └── main.yml │ │ ├── .travis.yml │ │ ├── .yamllint │ │ ├── README.md │ │ ├── meta │ │ │ └── main.yml │ │ └── tasks │ │ │ └── main.yml │ ├── ec2-cleanup │ │ ├── tests │ │ │ ├── inventory │ │ │ └── test.yml │ │ ├── vars │ │ │ └── main.yml │ │ ├── handlers │ │ │ └── main.yml │ │ ├── molecule │ │ │ └── default │ │ │ │ ├── converge.yml │ │ │ │ ├── verify.yml │ │ │ │ ├── molecule.yml │ │ │ │ └── INSTALL.rst │ │ ├── defaults │ │ │ └── main.yml │ │ ├── .travis.yml │ │ ├── .yamllint │ │ ├── tasks │ │ │ └── main.yml │ │ ├── README.md │ │ └── meta │ │ │ └── main.yml │ ├── build-vyos-ami │ │ ├── tests │ │ │ ├── inventory │ │ │ └── test.yml │ │ ├── handlers │ │ │ └── main.yml │ │ ├── defaults │ │ │ └── main.yml │ │ ├── molecule │ │ │ └── default │ │ │ │ ├── converge.yml │ │ │ │ ├── verify.yml │ │ │ │ ├── molecule.yml │ │ │ │ └── INSTALL.rst │ │ ├── vars │ │ │ └── main.yml │ │ ├── .travis.yml │ │ ├── .yamllint │ │ ├── README.md │ │ ├── meta │ │ │ └── main.yml │ │ └── tasks │ │ │ └── main.yml │ ├── provision-ec2-instance │ │ ├── tests │ │ │ ├── inventory │ │ │ └── test.yml │ │ ├── vars │ │ │ └── main.yml │ │ ├── handlers │ │ │ └── main.yml │ │ ├── molecule │ │ │ └── default │ │ │ │ ├── converge.yml │ │ │ │ ├── verify.yml │ │ │ │ ├── molecule.yml │ │ │ │ └── INSTALL.rst │ │ ├── defaults │ │ │ └── main.yml │ │ ├── .travis.yml │ │ ├── .yamllint │ │ ├── README.md │ │ ├── meta │ │ │ └── main.yml │ │ └── tasks │ │ │ └── main.yml │ └── meta │ │ └── main.yml ├── cleanup.yml ├── build-disk.yml ├── build-ami.yml ├── provision-instance.yml ├── init.yml ├── vyos-build-ami.yml └── group_vars │ └── all ├── .gitignore ├── bootstrap-virtualenv ├── Pipfile ├── Vagrantfile ├── LICENSE ├── vyos-build-ami └── README.md /hosts: -------------------------------------------------------------------------------- 1 | [local] 2 | localhost 3 | -------------------------------------------------------------------------------- /playbooks/templates/persistence.conf: -------------------------------------------------------------------------------- 1 | / union 2 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/tests/inventory: -------------------------------------------------------------------------------- 1 | localhost 2 | 3 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/tests/inventory: -------------------------------------------------------------------------------- 1 | localhost 2 | 3 | -------------------------------------------------------------------------------- /playbooks/templates/boot/grub/device.map.j2: -------------------------------------------------------------------------------- 1 | (hd0) /dev/sda 2 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/templates/persistence.conf: -------------------------------------------------------------------------------- 1 | / union 2 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/tests/inventory: -------------------------------------------------------------------------------- 1 | localhost 2 | 3 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/tests/inventory: -------------------------------------------------------------------------------- 1 | localhost 2 | 3 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for ec2-cleanup -------------------------------------------------------------------------------- /playbooks/roles/build-disk/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for build-disk -------------------------------------------------------------------------------- /playbooks/roles/build-disk/templates/boot/grub/device.map.j2: -------------------------------------------------------------------------------- 1 | (hd0) /dev/sda 2 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for ec2-cleanup -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | doc/ 2 | playbooks/files/ssh-keys/ 3 | .vagrant 4 | *.retry 5 | env 6 | .tmp/ 7 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for build-vyos-ami -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for provision-ec2-instance -------------------------------------------------------------------------------- /playbooks/roles/build-disk/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for build-disk 3 | vyos_iso_url: "{{ iso }}" -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for provision-ec2-instance -------------------------------------------------------------------------------- /playbooks/roles/build-disk/tests/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | remote_user: root 4 | roles: 5 | - build-disk -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/tests/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | remote_user: root 4 | roles: 5 | - ec2-cleanup -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/tests/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | remote_user: root 4 | roles: 5 | - build-vyos-ami -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for build-vyos-ami 3 | ec2_region: us-east-1 4 | ebs_drive: /dev/sdf -------------------------------------------------------------------------------- /playbooks/cleanup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Cleanup 4 | hosts: local 5 | connection: local 6 | gather_facts: False 7 | roles: 8 | - ec2-cleanup -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/tests/test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | remote_user: root 4 | roles: 5 | - provision-ec2-instance -------------------------------------------------------------------------------- /bootstrap-virtualenv: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm -rf env 4 | virtualenv env 5 | source env/bin/activate 6 | pip install ansible 7 | pip install awscli 8 | -------------------------------------------------------------------------------- /playbooks/build-disk.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Build disk 3 | hosts: ec2 4 | user: admin 5 | become: True 6 | gather_facts: True 7 | roles: 8 | - build-disk -------------------------------------------------------------------------------- /playbooks/build-ami.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Build AMI 4 | hosts: local 5 | connection: local 6 | gather_facts: False 7 | 8 | roles: 9 | - build-vyos-ami -------------------------------------------------------------------------------- /playbooks/roles/build-disk/files/sources.list: -------------------------------------------------------------------------------- 1 | deb http://deb.debian.org/debian/ jessie main non-free contrib 2 | deb-src http://deb.debian.org/debian/ jessie main non-free contrib -------------------------------------------------------------------------------- /playbooks/provision-instance.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Provision instance 3 | hosts: local 4 | connection: local 5 | gather_facts: True 6 | 7 | roles: 8 | - provision-ec2-instance 9 | -------------------------------------------------------------------------------- /playbooks/init.yml: -------------------------------------------------------------------------------- 1 | - name: Setup 2 | hosts: local 3 | connection: local 4 | gather_facts: False 5 | 6 | tasks: 7 | - fail: msg="Assert that an ISO is specified" 8 | when: iso == "" 9 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | 8 | [packages] 9 | botocore = "*" 10 | boto3 = "*" 11 | boto = "*" 12 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | tasks: 5 | - name: "Include build-disk" 6 | include_role: 7 | name: "build-disk" 8 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | tasks: 5 | - name: "Include ec2-cleanup" 6 | include_role: 7 | name: "ec2-cleanup" 8 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | tasks: 5 | - name: "Include build-vyos-ami" 6 | include_role: 7 | name: "build-vyos-ami" 8 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for ec2-cleanup 3 | placeholder: vyos-build-ami 4 | ec2_region: us-east-1 5 | key_pair_name: vyos-build-ami 6 | temp_folder: "{{ playbook_dir }}/files/ssh-keys" -------------------------------------------------------------------------------- /playbooks/roles/meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: 4 | description: vyos community 5 | company: vyos,sentium 6 | license: GPLv2 7 | min_ansible_version: 2.8 8 | galaxy_tags: [] 9 | dependencies: [] 10 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | tasks: 5 | - name: "Include provision-ec2-instance" 6 | include_role: 7 | name: "provision-ec2-instance" 8 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute Ansible tests. 3 | 4 | - name: Verify 5 | hosts: all 6 | tasks: 7 | - name: Example assertion 8 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute Ansible tests. 3 | 4 | - name: Verify 5 | hosts: all 6 | tasks: 7 | - name: Example assertion 8 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute Ansible tests. 3 | 4 | - name: Verify 5 | hosts: all 6 | tasks: 7 | - name: Example assertion 8 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute Ansible tests. 3 | 4 | - name: Verify 5 | hosts: all 6 | tasks: 7 | - name: Example assertion 8 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | platforms: 7 | - name: instance 8 | image: docker.io/pycontribs/centos:7 9 | pre_build_image: true 10 | provisioner: 11 | name: ansible 12 | verifier: 13 | name: ansible 14 | -------------------------------------------------------------------------------- /playbooks/vyos-build-ami.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # playbook: vyos-build-ami.yml 3 | # Main entry point in vyos-build-ami playbook 4 | 5 | - import_playbook: init.yml 6 | - import_playbook: provision-instance.yml 7 | - import_playbook: build-disk.yml 8 | - import_playbook: build-ami.yml 9 | - import_playbook: cleanup.yml 10 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | platforms: 7 | - name: instance 8 | image: docker.io/pycontribs/centos:7 9 | pre_build_image: true 10 | provisioner: 11 | name: ansible 12 | verifier: 13 | name: ansible 14 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | platforms: 7 | - name: instance 8 | image: docker.io/pycontribs/centos:7 9 | pre_build_image: true 10 | provisioner: 11 | name: ansible 12 | verifier: 13 | name: ansible 14 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | driver: 5 | name: docker 6 | platforms: 7 | - name: instance 8 | image: docker.io/pycontribs/centos:7 9 | pre_build_image: true 10 | provisioner: 11 | name: ansible 12 | verifier: 13 | name: ansible 14 | -------------------------------------------------------------------------------- /playbooks/templates/boot/grub/grub.cfg.j2: -------------------------------------------------------------------------------- 1 | set default=0 2 | set timeout=0 3 | 4 | menuentry "VyOS AMI (HVM) {{ version_string.stdout }}" { 5 | linux /boot/{{ version_string.stdout }}/vmlinuz boot=live selinux=0 vyos-union=/boot/{{ version_string.stdout }} console=tty1 6 | initrd /boot/{{ version_string.stdout }}/initrd.img 7 | } 8 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/templates/boot/grub/grub.cfg.j2: -------------------------------------------------------------------------------- 1 | set default=0 2 | set timeout=0 3 | 4 | menuentry "VyOS AMI (HVM) {{ version_string.stdout }}" { 5 | linux /boot/{{ version_string.stdout }}/vmlinuz boot=live selinux=0 vyos-union=/boot/{{ version_string.stdout }} console=tty1 6 | initrd /boot/{{ version_string.stdout }}/initrd.img 7 | } 8 | -------------------------------------------------------------------------------- /playbooks/group_vars/all: -------------------------------------------------------------------------------- 1 | key_pair_name: vyos-build-ami 2 | ec2_region: us-east-1 3 | temp_folder: "{{ playbook_dir }}/files/ssh-keys" 4 | key_pair_file: "{{ temp_folder }}/{{ key_pair_name }}.pem" 5 | instance_type: t2.micro 6 | placeholder: vyos-build-ami 7 | volume_size: 4 8 | volume_drive: /dev/xvdf 9 | ansible_ssh_private_key_file: "{{ key_pair_file }}" 10 | ansible_host_key_checking: False 11 | ansible_python_interpreter: python 12 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for build-vyos-ami 3 | version_string: "{{ hostvars[groups['ec2'][0]]['version_string']['stdout'] }}" 4 | snapshot_description: VyOS AMI (HVM) {{ version_string }} 5 | ami_name: VyOS (HVM) {{ version_string }} 6 | ami_description: The VyOS AMI is an EBS-backed, HVM image. It is an open-source Linux-based network operating system that provides software-based network routing, firewall, and VPN functionality. 7 | ami_architecture: x86_64 8 | ami_virtualization_type: hvm 9 | ami_root_device_name: /dev/xvda -------------------------------------------------------------------------------- /playbooks/roles/build-disk/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for build-disk 3 | vyos_iso_url: "{{ iso }}" 4 | vyos_iso_local: /tmp/vyos.iso 5 | vyos_key_url: http://packages.vyos.net/vyos-release.gpg 6 | vyos_key_local: /tmp/vyos-release.gpg 7 | CD_ROOT: /mnt/cdrom 8 | CD_SQUASH_ROOT: /mnt/cdsquash 9 | SQUASHFS_IMAGE: "{{ CD_ROOT }}/live/filesystem.squashfs" 10 | 11 | ROOT_FSTYPE: ext4 12 | ROOT_PARTITION: "{{ volume_drive }}1" # The install partition 13 | volume_size: 4 14 | volume_drive: /dev/xvdf 15 | WRITE_ROOT: /mnt/wroot 16 | READ_ROOT: /mnt/squashfs 17 | INSTALL_ROOT: /mnt/inst_root -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for provision-ec2-instance 3 | key_pair_name: vyos-build-ami 4 | ec2_region: us-east-1 5 | temp_folder: "{{ playbook_dir }}/files/ssh-keys" 6 | key_pair_file: "{{ temp_folder }}/{{ key_pair_name }}.pem" 7 | instance_type: t2.micro 8 | 9 | base_image: 10 | debian_aws_account_id: "379101102735" 11 | name: "debian-jessie-amd64-hvm-*" 12 | architecture: "x86_64" 13 | hypervisor: "xen" 14 | root_device_type: "ebs" 15 | 16 | placeholder: vyos-build-ami 17 | volume_size: 4 18 | volume_drive: /dev/xvdf 19 | ansible_ssh_private_key_file: "{{ key_pair_file }}" 20 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python 3 | python: "2.7" 4 | 5 | # Use the new container infrastructure 6 | sudo: false 7 | 8 | # Install ansible 9 | addons: 10 | apt: 11 | packages: 12 | - python-pip 13 | 14 | install: 15 | # Install ansible 16 | - pip install ansible 17 | 18 | # Check ansible version 19 | - ansible --version 20 | 21 | # Create ansible.cfg with correct roles_path 22 | - printf '[defaults]\nroles_path=../' >ansible.cfg 23 | 24 | script: 25 | # Basic role syntax check 26 | - ansible-playbook tests/test.yml -i tests/inventory --syntax-check 27 | 28 | notifications: 29 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ -------------------------------------------------------------------------------- /playbooks/roles/build-disk/molecule/default/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python 3 | python: "2.7" 4 | 5 | # Use the new container infrastructure 6 | sudo: false 7 | 8 | # Install ansible 9 | addons: 10 | apt: 11 | packages: 12 | - python-pip 13 | 14 | install: 15 | # Install ansible 16 | - pip install ansible 17 | 18 | # Check ansible version 19 | - ansible --version 20 | 21 | # Create ansible.cfg with correct roles_path 22 | - printf '[defaults]\nroles_path=../' >ansible.cfg 23 | 24 | script: 25 | # Basic role syntax check 26 | - ansible-playbook tests/test.yml -i tests/inventory --syntax-check 27 | 28 | notifications: 29 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python 3 | python: "2.7" 4 | 5 | # Use the new container infrastructure 6 | sudo: false 7 | 8 | # Install ansible 9 | addons: 10 | apt: 11 | packages: 12 | - python-pip 13 | 14 | install: 15 | # Install ansible 16 | - pip install ansible 17 | 18 | # Check ansible version 19 | - ansible --version 20 | 21 | # Create ansible.cfg with correct roles_path 22 | - printf '[defaults]\nroles_path=../' >ansible.cfg 23 | 24 | script: 25 | # Basic role syntax check 26 | - ansible-playbook tests/test.yml -i tests/inventory --syntax-check 27 | 28 | notifications: 29 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/molecule/default/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/molecule/default/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: python 3 | python: "2.7" 4 | 5 | # Use the new container infrastructure 6 | sudo: false 7 | 8 | # Install ansible 9 | addons: 10 | apt: 11 | packages: 12 | - python-pip 13 | 14 | install: 15 | # Install ansible 16 | - pip install ansible 17 | 18 | # Check ansible version 19 | - ansible --version 20 | 21 | # Create ansible.cfg with correct roles_path 22 | - printf '[defaults]\nroles_path=../' >ansible.cfg 23 | 24 | script: 25 | # Basic role syntax check 26 | - ansible-playbook tests/test.yml -i tests/inventory --syntax-check 27 | 28 | notifications: 29 | webhooks: https://galaxy.ansible.com/api/v1/notifications/ -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/molecule/default/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | rules: 6 | braces: 7 | max-spaces-inside: 1 8 | level: error 9 | brackets: 10 | max-spaces-inside: 1 11 | level: error 12 | colons: 13 | max-spaces-after: -1 14 | level: error 15 | commas: 16 | max-spaces-after: -1 17 | level: error 18 | comments: disable 19 | comments-indentation: disable 20 | document-start: disable 21 | empty-lines: 22 | max: 3 23 | level: error 24 | hyphens: 25 | level: error 26 | indentation: disable 27 | key-duplicates: enable 28 | line-length: disable 29 | new-line-at-end-of-file: disable 30 | new-lines: 31 | type: unix 32 | trailing-spaces: disable 33 | truthy: disable 34 | -------------------------------------------------------------------------------- /playbooks/roles/ec2-cleanup/.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | rules: 6 | braces: 7 | max-spaces-inside: 1 8 | level: error 9 | brackets: 10 | max-spaces-inside: 1 11 | level: error 12 | colons: 13 | max-spaces-after: -1 14 | level: error 15 | commas: 16 | max-spaces-after: -1 17 | level: error 18 | comments: disable 19 | comments-indentation: disable 20 | document-start: disable 21 | empty-lines: 22 | max: 3 23 | level: error 24 | hyphens: 25 | level: error 26 | indentation: disable 27 | key-duplicates: enable 28 | line-length: disable 29 | new-line-at-end-of-file: disable 30 | new-lines: 31 | type: unix 32 | trailing-spaces: disable 33 | truthy: disable 34 | -------------------------------------------------------------------------------- /playbooks/roles/build-vyos-ami/.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | rules: 6 | braces: 7 | max-spaces-inside: 1 8 | level: error 9 | brackets: 10 | max-spaces-inside: 1 11 | level: error 12 | colons: 13 | max-spaces-after: -1 14 | level: error 15 | commas: 16 | max-spaces-after: -1 17 | level: error 18 | comments: disable 19 | comments-indentation: disable 20 | document-start: disable 21 | empty-lines: 22 | max: 3 23 | level: error 24 | hyphens: 25 | level: error 26 | indentation: disable 27 | key-duplicates: enable 28 | line-length: disable 29 | new-line-at-end-of-file: disable 30 | new-lines: 31 | type: unix 32 | trailing-spaces: disable 33 | truthy: disable 34 | -------------------------------------------------------------------------------- /playbooks/roles/provision-ec2-instance/.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | rules: 6 | braces: 7 | max-spaces-inside: 1 8 | level: error 9 | brackets: 10 | max-spaces-inside: 1 11 | level: error 12 | colons: 13 | max-spaces-after: -1 14 | level: error 15 | commas: 16 | max-spaces-after: -1 17 | level: error 18 | comments: disable 19 | comments-indentation: disable 20 | document-start: disable 21 | empty-lines: 22 | max: 3 23 | level: error 24 | hyphens: 25 | level: error 26 | indentation: disable 27 | key-duplicates: enable 28 | line-length: disable 29 | new-line-at-end-of-file: disable 30 | new-lines: 31 | type: unix 32 | trailing-spaces: disable 33 | truthy: disable 34 | -------------------------------------------------------------------------------- /playbooks/templates/config.boot.default.ec2: -------------------------------------------------------------------------------- 1 | service { 2 | ssh { 3 | disable-password-authentication { 4 | } 5 | port 22 6 | } 7 | } 8 | system { 9 | host-name VyOS-AMI 10 | login { 11 | user vyos { 12 | authentication { 13 | encrypted-password "*" 14 | plaintext-password "" 15 | } 16 | level admin 17 | } 18 | } 19 | syslog { 20 | global { 21 | facility all { 22 | level notice 23 | } 24 | facility protocols { 25 | level debug 26 | } 27 | } 28 | } 29 | ntp { 30 | server "0.pool.ntp.org" 31 | server "1.pool.ntp.org" 32 | server "2.pool.ntp.org" 33 | } 34 | config-management { 35 | commit-revisions 100 36 | } 37 | } 38 | interfaces { 39 | ethernet eth0 { 40 | address dhcp 41 | } 42 | loopback lo 43 | } 44 | -------------------------------------------------------------------------------- /playbooks/roles/build-disk/templates/config.boot.default.ec2: -------------------------------------------------------------------------------- 1 | service { 2 | ssh { 3 | disable-password-authentication { 4 | } 5 | port 22 6 | } 7 | } 8 | system { 9 | host-name VyOS-AMI 10 | login { 11 | user vyos { 12 | authentication { 13 | encrypted-password "*" 14 | plaintext-password "" 15 | } 16 | level admin 17 | } 18 | } 19 | syslog { 20 | global { 21 | facility all { 22 | level notice 23 | } 24 | facility protocols { 25 | level debug 26 | } 27 | } 28 | } 29 | ntp { 30 | server "0.pool.ntp.org" 31 | server "1.pool.ntp.org" 32 | server "2.pool.ntp.org" 33 | } 34 | config-management { 35 | commit-revisions 100 36 | } 37 | } 38 | interfaces { 39 | ethernet eth0 { 40 | address dhcp 41 | } 42 | loopback lo 43 | } 44 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # vi: set ft=ruby 2 | 3 | $script = <