summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jjb/ci-management/ci-management-packer-jobs.yaml2
-rw-r--r--packer/provision/memcached.yaml12
-rw-r--r--packer/provision/redis.yaml17
-rw-r--r--packer/templates/memcached.json70
-rw-r--r--packer/templates/redis.json71
5 files changed, 110 insertions, 62 deletions
diff --git a/jjb/ci-management/ci-management-packer-jobs.yaml b/jjb/ci-management/ci-management-packer-jobs.yaml
index 055ae1b67..6faebf77c 100644
--- a/jjb/ci-management/ci-management-packer-jobs.yaml
+++ b/jjb/ci-management/ci-management-packer-jobs.yaml
@@ -49,7 +49,6 @@
build-timeout: 90
platforms:
- - centos-7
- ubuntu-16.04
templates: memcached
@@ -67,7 +66,6 @@
platforms:
- centos-7
- - ubuntu-16.04
templates: redis
- project:
diff --git a/packer/provision/memcached.yaml b/packer/provision/memcached.yaml
new file mode 100644
index 000000000..175de9719
--- /dev/null
+++ b/packer/provision/memcached.yaml
@@ -0,0 +1,12 @@
+---
+- import_playbook: ../common-packer/provision/baseline.yaml
+
+- hosts: all
+ become_user: root
+ become_method: sudo
+
+ tasks:
+ - name: 'Install Memcached'
+ package:
+ name: memcached
+ state: present
diff --git a/packer/provision/redis.yaml b/packer/provision/redis.yaml
new file mode 100644
index 000000000..307aecbc2
--- /dev/null
+++ b/packer/provision/redis.yaml
@@ -0,0 +1,17 @@
+---
+- import_playbook: ../common-packer/provision/baseline.yaml
+
+- hosts: all
+ become_user: root
+ become_method: sudo
+
+ tasks:
+ - name: 'Install Redis'
+ package:
+ name: redis
+ state: present
+
+ - name: 'Enable service redis'
+ service:
+ name: redis
+ state: enable
diff --git a/packer/templates/memcached.json b/packer/templates/memcached.json
index 722785e62..ad4bc805a 100644
--- a/packer/templates/memcached.json
+++ b/packer/templates/memcached.json
@@ -1,54 +1,64 @@
{
"variables": {
- "stack_tenant": null,
- "stack_user": null,
- "stack_pass": null,
- "stack_network": null,
+ "ansible_roles_path": ".galaxy",
"base_image": null,
- "cloud_user": null,
"distro": null,
- "cloud_user_data": null
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
+ "cloud_user_data": null,
+ "ssh_user": null,
+ "ssh_proxy_host": ""
},
"builders": [
{
+ "name": "vexxhost",
+ "image_name": "{{user `distro`}} - memcached - {{isotime \"20171102-0135\"}}",
+ "source_image_name": "{{user `base_image`}}",
"type": "openstack",
- "identity_endpoint": "https://auth.vexxhost.net/v2.0/",
- "tenant_name": "{{user `stack_tenant`}}",
- "username": "{{user `stack_user`}}",
- "password": "{{user `stack_pass`}}",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "domain_name": "Default",
"region": "ca-ymq-1",
- "ssh_username": "{{user `cloud_user`}}",
- "image_name": "{{user `distro`}} - memcached - {{isotime \"20060102-1504\"}}",
- "source_image_name": "{{user `base_image`}}",
- "flavor": "v1-standard-1",
"availability_zone": "ca-ymq-2",
"networks": [
- "{{user `stack_network`}}"
+ "{{user `cloud_network`}}"
],
- "user_data_file": "{{user `cloud_user_data`}}"
+ "user_data_file": "{{user `cloud_user_data`}}",
+ "ssh_username": "{{user `ssh_user`}}",
+ "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "flavor": "v1-standard-1",
+ "metadata": {
+ "ci_managed": "yes"
+ }
}
],
"provisioners": [
{
"type": "shell",
- "inline": [
- "mkdir -p /tmp/packer"
- ]
+ "scripts": [
+ "common-packer/provision/install-python.sh"
+ ],
+ "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
},
{
- "type": "file",
- "source": "provision/basebuild/",
- "destination": "/tmp/packer"
+ "type": "shell-local",
+ "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}"
},
{
- "type": "shell",
- "scripts": [
- "provision/baseline.sh",
- "provision/basebuild.sh",
- "provision/memcached.sh",
- "provision/system_reseal.sh"
- ],
- "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ "type": "ansible",
+ "playbook_file": "provision/memcached.yaml",
+ "ansible_env_vars": [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH={{user `ansible_roles_path`}}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
}
]
}
diff --git a/packer/templates/redis.json b/packer/templates/redis.json
index 7dee6fa3e..20422f677 100644
--- a/packer/templates/redis.json
+++ b/packer/templates/redis.json
@@ -1,54 +1,65 @@
{
"variables": {
- "stack_tenant": null,
- "stack_user": null,
- "stack_pass": null,
- "stack_network": null,
+ "ansible_roles_path": ".galaxy",
"base_image": null,
- "cloud_user": null,
"distro": null,
- "cloud_user_data": null
+ "cloud_auth_url": null,
+ "cloud_user": null,
+ "cloud_pass": null,
+ "cloud_network": null,
+ "cloud_tenant": null,
+ "cloud_user_data": null,
+ "ssh_user": null,
+ "ssh_proxy_host": ""
},
"builders": [
{
- "type": "openstack",
- "identity_endpoint": "https://auth.vexxhost.net/v2.0/",
- "tenant_name": "{{user `stack_tenant`}}",
- "username": "{{user `stack_user`}}",
- "password": "{{user `stack_pass`}}",
- "region": "ca-ymq-1",
- "ssh_username": "{{user `cloud_user`}}",
+ "name": "vexxhost",
"image_name": "{{user `distro`}} - redis - {{isotime \"20060102-1504\"}}",
"source_image_name": "{{user `base_image`}}",
- "flavor": "v1-standard-1",
+ "type": "openstack",
+ "identity_endpoint": "{{user `cloud_auth_url`}}",
+ "username": "{{user `cloud_user`}}",
+ "password": "{{user `cloud_pass`}}",
+ "tenant_name": "{{user `cloud_tenant`}}",
+ "domain_name": "Default",
+ "region": "ca-ymq-1",
"availability_zone": "ca-ymq-2",
"networks": [
- "{{user `stack_network`}}"
+ "{{user `cloud_network`}}"
],
- "user_data_file": "{{user `cloud_user_data`}}"
+ "user_data_file": "{{user `cloud_user_data`}}",
+ "ssh_username": "{{user `ssh_user`}}",
+ "ssh_proxy_host": "{{user `ssh_proxy_host`}}",
+ "flavor": "v1-standard-1",
+ "metadata": {
+ "ci_managed": "yes"
+ }
}
],
"provisioners": [
{
"type": "shell",
- "inline": [
- "mkdir -p /tmp/packer"
- ]
+ "scripts": [
+ "common-packer/provision/install-python.sh"
+ ],
+ "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
},
{
- "type": "file",
- "source": "provision/basebuild/",
- "destination": "/tmp/packer"
+ "type": "shell-local",
+ "command": "./common-packer/ansible-galaxy.sh {{user `ansible_roles_path`}}"
},
{
- "type": "shell",
- "scripts": [
- "provision/baseline.sh",
- "provision/basebuild.sh",
- "provision/redis.sh",
- "provision/system_reseal.sh"
- ],
- "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ "type": "ansible",
+ "playbook_file": "provision/redis.yaml",
+ "ansible_env_vars": [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH={{user `ansible_roles_path`}}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
}
]
}
+