Advertisement
Guest User

Untitled

a guest
Jul 14th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. ---
  2. #ansible provisioner for vagrant. this will run initially at 'vagrant up',
  3. #and can be rerun with 'vagrant provision'
  4.  
  5. - hosts: all
  6. gather_facts: no
  7. vars_files:
  8. - ../conf/secrets.yml
  9.  
  10. tasks:
  11. #add mongo to apt
  12. #add docker to apt
  13. #update apt packages
  14. #install host apt requirements
  15. - name: install host requirements
  16. apt: name={{ item }} state=present
  17. sudo: yes
  18. with_items:
  19. - build-essential
  20. - git
  21. - python
  22. - python-setuptools
  23. - mongodb-org-shell
  24. - docker-engine=1.9.1-0~trusty
  25. #install pip for ansible requirements
  26. - name: install pip
  27. sudo: yes
  28. command: easy_install -U pip
  29. - name: install docker-py
  30. sudo: yes
  31. pip: name=docker-py state=present version=1.1.0
  32. - name: install awscli
  33. sudo: yes
  34. pip: name=awscli state=latest
  35. #configure awscli
  36. #docker setup
  37. - name: login for config
  38. sudo: yes
  39. shell: export AWS_CONFIG_FILE=/home/vagrant/.aws/config; ECR_LOGIN="$(aws ecr get-login --region us-east-1)"; $ECR_LOGIN;
  40. - name: login to ecr
  41. sudo: yes
  42. shell: export AWS_CONFIG_FILE=/home/vagrant/.aws/config; ECR_LOGIN="$(aws ecr get-login --region us-east-1)"; echo $ECR_LOGIN | awk '{print $6}';
  43. register: docker_pass
  44. - set_fact:
  45. DOCKER_PASS: "{{ docker_pass.stdout }}"
  46. - name: give vagrant user access to docker
  47. command: usermod -aG docker vagrant
  48. sudo: true
  49. - name: copy ecr login
  50. sudo: yes
  51. shell: cp -Rf /root/.docker/ /home/vagrant/.docker/
  52. - name: clone all the things
  53. git: repo=git@github.com:airtimemedia/{{ item }}.git
  54. dest=/vagrant/services/{{ item }}
  55. track_submodules=yes
  56. update=yes
  57. accept_hostkey=yes
  58. version=develop
  59. ignore_errors: yes
  60. with_items:
  61. - deathstar
  62. - stormtrooper
  63. #start redis and mongodb containers
  64. - name: run redis container
  65. sudo: yes
  66. docker:
  67. name: redis
  68. image: redis
  69. command: redis-server --appendonly yes
  70. state: reloaded
  71. ports:
  72. - '6379:6379'
  73. expose:
  74. - 6379
  75. - name: run mongodb container
  76. sudo: yes
  77. docker:
  78. name: mongo
  79. image: mongo
  80. state: reloaded
  81. ports:
  82. - '27017:27017'
  83. expose:
  84. - 27017
  85. #pull and run docker containers for each service
  86. #start deathstar
  87. - name: pull/start deathstar container
  88. sudo: yes
  89. docker:
  90. name: deathstar
  91. image: "{{ AWS_DOCKER_REGISTRY }}/deathstar_test:develop"
  92. username: AWS
  93. password: "{{ DOCKER_PASS }}"
  94. registry: "{{ AWS_DOCKER_REGISTRY }}"
  95. state: reloaded
  96. pull: always
  97. insecure_registry: yes
  98. detach: yes
  99. links:
  100. - "redis:redis"
  101. - "mongo:mongo"
  102. ports:
  103. - "<port>:80"
  104. volumes:
  105. - "/vagrant/services/deathstar:/srv:rw"
  106. env:
  107. CLUSTER_SIZE: 2
  108. REDIS_HOST: redis
  109. REDIS_PORT: 6379
  110. MONGODB_URL: mongodb://mongo:27017/deathstar
  111. - name: npm install for deathstar
  112. sudo: yes
  113. shell: docker exec -it deathstar sh -c "rm -rf node_modules && npm install --color false --progress false"
  114. ignore_errors: yes
  115. - name: restart deathstar
  116. sudo: yes
  117. shell: docker exec deathstar supervisorctl restart deathstar
  118. - name: wait for deathstar
  119. wait_for: host=localhost port=<port>
  120. #install npm modules for empire
  121. - name: install node modules for empire
  122. sudo: no
  123. npm: path=/vagrant
  124. ignore_scripts=yes
  125. state=present
  126. ignore_errors: yes
  127. # Deal with any cross container linking required
  128. - name: Get Deathstar IP
  129. shell: echo $(sudo docker inspect --format \{\{' .NetworkSettings.IPAddress '\}\} deathstar)
  130. register: DEATHSTAR_IP
  131. ignore_errors: true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement