diff --git a/playbooks/README.md b/playbooks/README.md new file mode 100644 index 0000000..4043b7b --- /dev/null +++ b/playbooks/README.md @@ -0,0 +1 @@ +ansible-playbook -i playbooks/nodes -s playbooks/site.yaml diff --git a/playbooks/bootstrap.sh b/playbooks/bootstrap.sh new file mode 100644 index 0000000..10c86fe --- /dev/null +++ b/playbooks/bootstrap.sh @@ -0,0 +1,15 @@ +if [ ! -f $HOME/.ssh/id_rsa.pub ]; then + ssh-keygen +fi + +DEFAULT_SSH_PUBKEY=`cat $HOME/.ssh/id_rsa.pub` + +if [ ! -d $HOME/.ssh ]; then + mkdir -p $HOME/.ssh +fi + +chmod 0700 $HOME/.ssh +echo $DEFAULT_SSH_PUBKEY >> $HOME/.ssh/authorized_keys +chmod 0600 $HOME/.ssh/authorized_keys + +sudo apt-get install ansible diff --git a/playbooks/nodes b/playbooks/nodes new file mode 100644 index 0000000..68b2dac --- /dev/null +++ b/playbooks/nodes @@ -0,0 +1,2 @@ +[all] +localhost diff --git a/playbooks/roles/beansdb/handlers/main.yaml b/playbooks/roles/beansdb/handlers/main.yaml new file mode 100644 index 0000000..15de1e1 --- /dev/null +++ b/playbooks/roles/beansdb/handlers/main.yaml @@ -0,0 +1,2 @@ +- name: Start beansdb + command: diff --git a/playbooks/roles/beansdb/tasks/main.yaml b/playbooks/roles/beansdb/tasks/main.yaml new file mode 100644 index 0000000..e0f84e7 --- /dev/null +++ b/playbooks/roles/beansdb/tasks/main.yaml @@ -0,0 +1,25 @@ +- name: Check if beansdb exists + stat: path=/usr/local/bin/beansdb + register: beansdb_bin + +- name: Clone beansdb repo + git: repo=https://github.com/douban/beansdb dest=/tmp/beansdb version=master + when: beansdb_bin.stat.exists == false + +- name: Install beansdb + command: ./autogen.sh && ./configure && make && make install + when: beansdb_bin.stat.exists == false + args: + chdir: /tmp/beansdb + +- name: Create /data/beansdb + file: path=/data/beansdb state=directory mode=0755 + +- name: Create /etc/beansdb + file: path=/etc/beansdb state=directory mode=0755 + +- name: Copy log config + copy: src=/tmp/beansdb/beansdb_log.conf dest=/etc/beansdb/log.conf + +- name: Start beansdb + command: beansdb -p 7900 -H /data/beansdb -T 0 -d -L /etc/beansdb/log.conf diff --git a/playbooks/roles/common/tasks/main.yaml b/playbooks/roles/common/tasks/main.yaml new file mode 100644 index 0000000..3ae14fc --- /dev/null +++ b/playbooks/roles/common/tasks/main.yaml @@ -0,0 +1,11 @@ +- name: Install build-essential + apt: pkg=build-essential state=installed + +- name: Install dh-autoreconf + apt: pkg=dh-autoreconf state=installed + +- name: Install g++ + apt: pkg=g++ state=installed + +- name: Install git + apt: pkg=git state=installed diff --git a/playbooks/roles/memcached/tasks/main.yaml b/playbooks/roles/memcached/tasks/main.yaml new file mode 100644 index 0000000..373ba12 --- /dev/null +++ b/playbooks/roles/memcached/tasks/main.yaml @@ -0,0 +1,2 @@ +- name: Install memcached + apt: pkg=memcached state=installed diff --git a/playbooks/roles/mysql/tasks/main.yaml b/playbooks/roles/mysql/tasks/main.yaml new file mode 100644 index 0000000..5687a01 --- /dev/null +++ b/playbooks/roles/mysql/tasks/main.yaml @@ -0,0 +1,8 @@ +- name: Install MySQL Client + apt: pkg=mysql-client state=installed + +- name: Install MySQL Server + apt: pkg=mysql-server state=installed + +- name: Install MySQL lib + apt: pkg=libmysqlclient-dev state=installed diff --git a/playbooks/roles/redis/tasks/main.yaml b/playbooks/roles/redis/tasks/main.yaml new file mode 100644 index 0000000..117d72e --- /dev/null +++ b/playbooks/roles/redis/tasks/main.yaml @@ -0,0 +1,2 @@ +- name: Install redis + apt: pkg=redis-server state=installed diff --git a/playbooks/roles/web/tasks/main.yaml b/playbooks/roles/web/tasks/main.yaml new file mode 100644 index 0000000..5d6e908 --- /dev/null +++ b/playbooks/roles/web/tasks/main.yaml @@ -0,0 +1,26 @@ +# should install first +- name: check virtualenv + stat: path=/vagrant/venv + register: venv_bin + +- name: create virualenv + command: virtualenv venv + when: venv_bin.stat.exists == false + args: + chdir: /vagrant + +- name: Install python pip + apt: pkg=python-pip state=installed + +- name: Install python virtualenv + apt: pkg=python-virtualenv state=installed + +- name: Install python dev + apt: pkg=python-dev state=installed + +- name: Install libffi + apt: pkg=libffi-dev state=installed + +- pip: name=cython virtualenv=/vagrant/venv +- pip: name=setuptools virtualenv=/vagrant/venv +- pip: requirements=/vagrant/requirements.txt virtualenv=/vagrant/venv diff --git a/playbooks/site.yaml b/playbooks/site.yaml new file mode 100644 index 0000000..8cf4b72 --- /dev/null +++ b/playbooks/site.yaml @@ -0,0 +1,12 @@ +--- + +- name: Setup CODE dev env + hosts: + - all + roles: + - common + - mysql + - beansdb + - redis + - memcached + - web