-
Notifications
You must be signed in to change notification settings - Fork 40
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,3 @@ | ||
README.pdf | ||
README.html | ||
shared_test_repo/ | ||
test/integration | ||
.kitchen | ||
coverage | ||
Vagrantfile.erb | ||
|
||
Gemfile.lock | ||
Berksfile.lock | ||
|
||
ansible.cfg | ||
hosts | ||
Gemfile.lock |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,28 @@ | ||
--- | ||
driver: | ||
name: vagrant | ||
driver_config: | ||
http_proxy: <%= ENV['http_proxy'] || nil %> | ||
https_proxy: <%= ENV['https_proxy'] || nil %> | ||
vagrantfiles: | ||
- kitchen_vagrant_block.rb | ||
|
||
provisioner: | ||
name: ansible_playbook | ||
test_repo_uri: https://github.com/hardening-io/tests-ssh-hardening.git | ||
hosts: all | ||
require_ansible_repo: false | ||
require_ansible_omnibus: true | ||
require_chef_for_busser: false | ||
require_ruby_for_busser: false | ||
ansible_verbose: true | ||
roles_path: ../ansible-ssh-hardening/ | ||
roles_path: ../ansible-nginx-hardening/ | ||
requirements_path: requirements.yml | ||
playbook: default.yml | ||
http_proxy: <%= ENV['http_proxy'] || nil %> | ||
https_proxy: <%= ENV['https_proxy'] || nil %> | ||
|
||
transport: | ||
max_ssh_sessions: 5 | ||
|
||
platforms: | ||
- name: ubuntu-12.04 | ||
|
@@ -23,6 +33,10 @@ platforms: | |
driver_config: | ||
box: opscode-ubuntu-14.04 | ||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-14.04_chef-provisionerless.box | ||
- name: ubuntu-16.04 | ||
driver_config: | ||
box: opscode-ubuntu-16.04 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. usually its better to use the bento boxes, as the opscode boxes are not maintained anymore There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to focus on the docker part since I simply copied the vagrant-configuration and did not change it. I'll change it in another PR. |
||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-16.04_chef-provisionerless.box | ||
- name: centos-6.4 | ||
driver_config: | ||
box: opscode-centos-6.4 | ||
|
@@ -31,6 +45,12 @@ platforms: | |
driver_config: | ||
box: opscode-centos-6.5 | ||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box | ||
- name: centos-6.8 | ||
driver_config: | ||
box: bento/centos-6.8 | ||
- name: centos-7 | ||
driver_config: | ||
box: bento/centos-7.2 | ||
- name: oracle-6.4 | ||
driver_config: | ||
box: oracle-6.4 | ||
|
@@ -39,10 +59,9 @@ platforms: | |
driver_config: | ||
box: oracle-6.5 | ||
box_url: https://storage.us2.oraclecloud.com/v1/istoilis-istoilis/vagrant/oel65-64.box | ||
- name: debian-6 | ||
- name: oracle-7 | ||
driver_config: | ||
box: debian-6 | ||
box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_debian-6.0.10_chef-provisionerless.box | ||
box: boxcutter/ol72 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are bento boxes available for oracle, I would suggest to use them as they are maintained There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd like to focus on the docker part since I simply copied the vagrant-configuration and did not change it. I'll change it in another PR. |
||
- name: debian-7 | ||
driver_config: | ||
box: debian-7 | ||
|
@@ -56,10 +75,7 @@ verifier: | |
name: inspec | ||
sudo: true | ||
inspec_tests: | ||
- https://github.com/dev-sec/tests-ssh-hardening | ||
- https://github.com/dev-sec/nginx-baseline/ | ||
|
||
suites: | ||
- name: nginx-ansible_1.9 | ||
provisioner: | ||
ansible_version: 1.9.4 | ||
- name: nginx-ansible_latest | ||
- name: nginx |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,65 @@ | ||
--- | ||
notifications: | ||
webhooks: https://galaxy.ansible.com/api/v1/notifications/ | ||
language: python | ||
python: "2.7" | ||
services: docker | ||
|
||
env: | ||
- ANSIBLE_VERSION=latest | ||
- ANSIBLE_VERSION=1.9.4 | ||
- distro: centos6 | ||
version: latest | ||
init: /sbin/init | ||
|
||
- distro: centos7 | ||
init: /usr/lib/systemd/systemd | ||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | ||
version: latest | ||
|
||
- distro: oracle6 | ||
version: latest | ||
init: /sbin/init | ||
|
||
- distro: oracle7 | ||
init: /usr/lib/systemd/systemd | ||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | ||
version: latest | ||
|
||
- distro: ubuntu1604 | ||
version: latest | ||
init: /lib/systemd/systemd | ||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | ||
|
||
- distro: ubuntu1404 | ||
version: latest | ||
init: /sbin/init | ||
|
||
# - distro: debian7 | ||
# version: latest | ||
# init: /sbin/init | ||
|
||
- distro: debian8 | ||
version: latest | ||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | ||
init: /sbin/init | ||
|
||
- distro: debian9 | ||
version: latest | ||
init: /lib/systemd/systemd | ||
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | ||
|
||
before_install: | ||
- sudo apt-get update -qq | ||
- sudo apt-get install -qq python-apt python-pycurl | ||
install: | ||
- if [ "$ANSIBLE_VERSION" = "latest" ]; then pip install ansible; else pip install ansible==$ANSIBLE_VERSION; fi | ||
- echo -e 'localhost ansible_connection=local' > spec/inventory | ||
- echo -e '[defaults]\nroles_path = ../\nhostfile = ./spec/inventory' > ansible.cfg | ||
# Pull container | ||
- 'docker pull rndmh3ro/docker-${distro}-ansible:${version}' | ||
|
||
script: | ||
- ansible-galaxy install -r requirements.yml | ||
- ansible-playbook --syntax-check spec/travis.yml | ||
- ansible-playbook --sudo -v --diff spec/travis.yml | ||
- ansible-playbook --sudo -v --diff spec/travis.yml --extra-vars "nginx_remove_default_site=false" | ||
- container_id=$(mktemp) | ||
# Run container in detached state. | ||
- 'docker run --detach --volume="${PWD}":/etc/ansible/roles/ansible-nginx-hardening:ro ${run_opts} rndmh3ro/docker-${distro}-ansible:${version} "${init}" > "${container_id}"' | ||
|
||
# Install ansible galaxy requirements | ||
- 'docker exec "$(cat ${container_id})" ansible-galaxy install -r /etc/ansible/roles/ansible-nginx-hardening/requirements.yml -p /etc/ansible/roles/' | ||
|
||
# Test role. | ||
- 'docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/ansible-nginx-hardening/default.yml -vv' | ||
|
||
# Verify role | ||
- 'inspec exec https://github.com/dev-sec/nginx-baseline/ -t docker://$(cat ${container_id})' | ||
|
||
notifications: | ||
webhooks: https://galaxy.ansible.com/api/v1/notifications/ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. out of interest: what does this hook?:) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This gets used to show the build status here: https://galaxy.ansible.com/dev-sec/nginx-hardening/ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# config file for ansible -- http://ansible.com/ | ||
# ============================================== | ||
|
||
# nearly all parameters can be overridden in ansible-playbook | ||
# or with command line flags. ansible will read ANSIBLE_CONFIG, | ||
# ansible.cfg in the current working directory, .ansible.cfg in | ||
# the home directory or /etc/ansible/ansible.cfg, whichever it | ||
# finds first | ||
|
||
[defaults] | ||
ansible_managed = Ansible managed: {file} modified on %Y-%m-%d by {uid} on {host} | ||
|
||
role_path = /vagrant | ||
scp_if_ssh = True |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# This is a Vagrant block to allow proxy settings to be carried into Kitchen | ||
# You need this for all of yum/apt etc. to work! | ||
unless ENV['http_proxy'].empty? || Vagrant.has_plugin?("vagrant-proxyconf") | ||
raise "Missing required plugin 'vagrant-proxyconf' to support HTTP(S) proxies, run `vagrant plugin install vagrant-proxyconf`" | ||
end | ||
|
||
Vagrant.configure(2) do |config| | ||
config.proxy.http = "#{ENV['http_proxy']}" | ||
config.proxy.https = "#{ENV['https_proxy']}" | ||
config.proxy.no_proxy = "localhost,127.0.0.1" | ||
|
||
# You may have vagrant-vbguest plugin installed to keep your images up to date | ||
# - but will probably have VBoxAddition build issues with the foreign boxes listed in .kitchen.vagrant.yml | ||
config.vbguest.auto_update = false | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I usually set this in the global local Vagrantfile, so it works absolutely with all (foreign too) Vagrant and kitchen files for me:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to focus on the docker part since I simply copied the vagrant-configuration and did not change it. I'll change it in another PR.