diff options
| author | mo khan <mo@mokhan.ca> | 2015-11-24 22:17:46 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2015-11-24 22:17:46 -0700 |
| commit | 6e0d8bc3ab7853a7c1011c82979d2fb6f9f59b93 (patch) | |
| tree | 144239ed4fd4ed5b78980d7456f376dc35468f10 | |
| parent | 399e657d481b496763a438e9de4dfb68bc6ffd14 (diff) | |
create vagrant instance with pg installed.
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | Vagrantfile | 23 | ||||
| -rw-r--r-- | chef_apply.rb | 38 | ||||
| -rw-r--r-- | movies.dump | 284 |
4 files changed, 346 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8000dd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vagrant diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..35ae5fd --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,23 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# https://docs.vagrantup.com/v2/vmware/kernel-upgrade.html +$fix_vmware_tools_script = <<SCRIPT +sed -i.bak 's/answer AUTO_KMODS_ENABLED_ANSWER no/answer AUTO_KMODS_ENABLED_ANSWER yes/g' /etc/vmware-tools/locations +sed -i 's/answer AUTO_KMODS_ENABLED no/answer AUTO_KMODS_ENABLED yes/g' /etc/vmware-tools/locations +SCRIPT + +Vagrant.configure("2") do |config| + config.vm.box = "phusion/ubuntu-14.04-amd64" + config.vm.provision :shell, inline: $fix_vmware_tools_script + config.vm.provision :chef_apply do |chef| + chef.recipe = File.read("chef_apply.rb") + chef.install = "force" + chef.version = "latest" + end + config.vm.provider :vmware_fusion do |vm| + vm.vmx["memsize"] = "2048" + vm.vmx["numvcpus"] = "2" + end + config.ssh.forward_agent = true +end diff --git a/chef_apply.rb b/chef_apply.rb new file mode 100644 index 0000000..a2df3d2 --- /dev/null +++ b/chef_apply.rb @@ -0,0 +1,38 @@ +execute "apt-get update -y" +execute "apt-get upgrade -y" + +package [ + 'curl', + 'git-core', + 'libsqlite3-dev', + 'sqlite3' +] + +bash "install postgres" do + user "root" + not_if { ::File.exist?("/etc/apt/sources.list.d/pgdg.list") } + code <<-SCRIPT + echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc \ + | apt-key add - + apt-get update -y + apt-get install -y postgresql-9.4 libpq-dev \ + postgresql-contrib-9.4 postgresql-client-common + SCRIPT +end + +sql = "SELECT 1 FROM pg_roles WHERE rolname='vagrant'" +create_user = "createuser -s -e -w vagrant" +execute "psql postgres -tAc \"#{sql}\" | grep -q 1 || #{create_user}" do + user "postgres" +end + +sql = "SELECT 1 FROM pg_roles WHERE rolname='vagrant'" +execute "createdb" do + user "vagrant" + not_if { "psql postgres -tAc \"#{sql}\" | grep -q 1" } +end + +service "postgresql" do + action [:enable, :start] +end diff --git a/movies.dump b/movies.dump new file mode 100644 index 0000000..fc17f01 --- /dev/null +++ b/movies.dump @@ -0,0 +1,284 @@ +-- +-- PostgreSQL database dump +-- + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SET check_function_bodies = false; +SET client_min_messages = warning; + +-- +-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: +-- + +CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; + + +-- +-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: +-- + +COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; + + +SET search_path = public, pg_catalog; + +SET default_tablespace = ''; + +SET default_with_oids = false; + +-- +-- Name: movies; Type: TABLE; Schema: public; Owner: vagrant; Tablespace: +-- + +CREATE TABLE movies ( + id integer NOT NULL, + title character varying(255), + studio_id integer, + year integer +); + + +ALTER TABLE movies OWNER TO vagrant; + +-- +-- Name: movies_id_seq; Type: SEQUENCE; Schema: public; Owner: vagrant +-- + +CREATE SEQUENCE movies_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE movies_id_seq OWNER TO vagrant; + +-- +-- Name: movies_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: vagrant +-- + +ALTER SEQUENCE movies_id_seq OWNED BY movies.id; + + +-- +-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: vagrant; Tablespace: +-- + +CREATE TABLE schema_migrations ( + version character varying(255) NOT NULL +); + + +ALTER TABLE schema_migrations OWNER TO vagrant; + +-- +-- Name: studios; Type: TABLE; Schema: public; Owner: vagrant; Tablespace: +-- + +CREATE TABLE studios ( + id integer NOT NULL, + title character varying(255) +); + + +ALTER TABLE studios OWNER TO vagrant; + +-- +-- Name: studios_id_seq; Type: SEQUENCE; Schema: public; Owner: vagrant +-- + +CREATE SEQUENCE studios_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE studios_id_seq OWNER TO vagrant; + +-- +-- Name: studios_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: vagrant +-- + +ALTER SEQUENCE studios_id_seq OWNED BY studios.id; + + +-- +-- Name: users; Type: TABLE; Schema: public; Owner: vagrant; Tablespace: +-- + +CREATE TABLE users ( + id integer NOT NULL, + password_digest character varying(255), + created_at timestamp without time zone, + updated_at timestamp without time zone +); + + +ALTER TABLE users OWNER TO vagrant; + +-- +-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: vagrant +-- + +CREATE SEQUENCE users_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE users_id_seq OWNER TO vagrant; + +-- +-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: vagrant +-- + +ALTER SEQUENCE users_id_seq OWNED BY users.id; + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: vagrant +-- + +ALTER TABLE ONLY movies ALTER COLUMN id SET DEFAULT nextval('movies_id_seq'::regclass); + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: vagrant +-- + +ALTER TABLE ONLY studios ALTER COLUMN id SET DEFAULT nextval('studios_id_seq'::regclass); + + +-- +-- Name: id; Type: DEFAULT; Schema: public; Owner: vagrant +-- + +ALTER TABLE ONLY users ALTER COLUMN id SET DEFAULT nextval('users_id_seq'::regclass); + + +-- +-- Data for Name: movies; Type: TABLE DATA; Schema: public; Owner: vagrant +-- + +COPY movies (id, title, studio_id, year) FROM stdin; +1 The Shawshank Redemption 1 1994 +2 Chasing Amy 2 1997 +3 Man on Fire 3 2004 +4 Toy Story 4 1995 +5 Up 4 2006 +6 Cars 4 2009 +7 Monsters Inc. 4 2001 +8 Fantasia 5 1940 +9 Dumbo 5 1941 +10 Pinocchio 5 1940 +\. + + +-- +-- Name: movies_id_seq; Type: SEQUENCE SET; Schema: public; Owner: vagrant +-- + +SELECT pg_catalog.setval('movies_id_seq', 10, true); + + +-- +-- Data for Name: schema_migrations; Type: TABLE DATA; Schema: public; Owner: vagrant +-- + +COPY schema_migrations (version) FROM stdin; +20140208162237 +20131129024058 +20131129025934 +20140208154456 +20140208160437 +\. + + +-- +-- Data for Name: studios; Type: TABLE DATA; Schema: public; Owner: vagrant +-- + +COPY studios (id, title) FROM stdin; +1 Castle Rock +2 MiramaxFilms +3 RegencyEnterprises +4 Pixar +5 Disney +\. + + +-- +-- Name: studios_id_seq; Type: SEQUENCE SET; Schema: public; Owner: vagrant +-- + +SELECT pg_catalog.setval('studios_id_seq', 1, false); + + +-- +-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: vagrant +-- + +COPY users (id, password_digest, created_at, updated_at) FROM stdin; +\. + + +-- +-- Name: users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: vagrant +-- + +SELECT pg_catalog.setval('users_id_seq', 1, false); + + +-- +-- Name: movies_pkey; Type: CONSTRAINT; Schema: public; Owner: vagrant; Tablespace: +-- + +ALTER TABLE ONLY movies + ADD CONSTRAINT movies_pkey PRIMARY KEY (id); + + +-- +-- Name: studios_pkey; Type: CONSTRAINT; Schema: public; Owner: vagrant; Tablespace: +-- + +ALTER TABLE ONLY studios + ADD CONSTRAINT studios_pkey PRIMARY KEY (id); + + +-- +-- Name: users_pkey; Type: CONSTRAINT; Schema: public; Owner: vagrant; Tablespace: +-- + +ALTER TABLE ONLY users + ADD CONSTRAINT users_pkey PRIMARY KEY (id); + + +-- +-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: vagrant; Tablespace: +-- + +CREATE UNIQUE INDEX unique_schema_migrations ON schema_migrations USING btree (version); + + +-- +-- Name: public; Type: ACL; Schema: -; Owner: postgres +-- + +REVOKE ALL ON SCHEMA public FROM PUBLIC; +REVOKE ALL ON SCHEMA public FROM postgres; +GRANT ALL ON SCHEMA public TO postgres; +GRANT ALL ON SCHEMA public TO PUBLIC; + + +-- +-- PostgreSQL database dump complete +-- + |
