Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. ---
  2. - hosts: application
  3.  
  4. vars:
  5. domain: rumman.co
  6. deploy_key_file: ~/.ssh/gitlab-deploy
  7. www_dir: /var/www/{{ domain }}/newscoop
  8. virtualhost_conf: "/etc/apache2/sites-available/{{ domain }}.conf"
  9. apache_log_dir: /var/log/{{ domain }}
  10. apache_remove_default_vhost: true
  11. apache_vhosts_filename: false
  12. apache_mods_enabled:
  13. - rewrite.load
  14. apache_state: started
  15. mysql_root_password: "{{ lookup('env', 'MYSQL_ROOT_PASSWORD') }}"
  16.  
  17. pre_tasks:
  18. - name: add repositories
  19. become: yes
  20. apt_repository: repo={{ item }} update_cache=yes
  21. with_items:
  22. - "ppa:ondrej/php"
  23.  
  24. - name: Install updates
  25. apt: update_cache=yes upgrade=dist
  26.  
  27. roles:
  28. - geerlingguy.apache
  29. - geerlingguy.mysql
  30. - geerlingguy.php
  31. - geerlingguy.apache-php-fpm
  32. - geerlingguy.composer
  33.  
  34. tasks:
  35. - name: Install packages
  36. become: yes
  37. apt: name={{ item }} state=latest
  38. with_items:
  39. - git
  40. - acl
  41. - ack-grep
  42. - php7.0
  43. - libapache2-mod-php7.0
  44. - php7.0-intl
  45. - php7.0-cli
  46. - php7.0-zip
  47. - php7.0-xml
  48. - php7.0-curl
  49. - php7.0-fpm
  50. - php7.0-intl
  51. - php7.0-mbstring
  52. - php7.0-json
  53. - php7.0-mcrypt
  54. - php7.0-sqlite3
  55. - php7.0-mysql
  56.  
  57. - name: Create virtualhost
  58. become: yes
  59. template:
  60. src: "virtualhost.conf"
  61. dest: "/etc/apache2/sites-available/{{ domain }}.conf"
  62.  
  63. - name: Prepare log dir
  64. become: yes
  65. file:
  66. path: "{{ apache_log_dir }}"
  67. owner: www-data
  68. group: adm
  69. mode: 0770
  70. state: directory
  71.  
  72. - name: Enable virtualhost
  73. become: yes
  74. file:
  75. src: "{{ virtualhost_conf }}"
  76. path: /etc/apache2/sites-enabled/{{ domain }}.conf
  77. state: link
  78. notify: restart apache2
  79.  
  80. - name: Create deploy user (operator)
  81. become: yes
  82. user:
  83. name: operator
  84. groups: adm
  85. state: present
  86. generate_ssh_key: yes
  87.  
  88. - name: Copy private deploy key
  89. become: yes
  90. become_user: operator
  91. copy:
  92. src: "{{ deploy_key_file }}"
  93. dest: "~/.ssh/deploy-key"
  94. owner: operator
  95. group: adm
  96. mode: 0600
  97.  
  98. - name: Copy public deploy key
  99. become: yes
  100. become_user: operator
  101. copy:
  102. src: "{{ deploy_key_file }}.pub"
  103. dest: "~/.ssh/deploy-key.pub"
  104. owner: operator
  105. group: adm
  106. mode: 0644
  107.  
  108. - name: Install newscoop
  109. become: yes
  110. become_user: operator
  111. git:
  112. repo: git@gitlab.com:rumman-co/Newscoop.git
  113. clone: yes
  114. dest: "/var/www/{{ domain }}"
  115. key_file: "~/.ssh/deploy-key"
  116. accept_hostkey: true
  117. force: yes
  118.  
  119. - name: Install Composer modules
  120. become: yes
  121. become_user: operator
  122. command: composer install chdir={{ www_dir }}
  123.  
  124. - name: Fix permissions
  125. become: yes
  126. file:
  127. path: /var/www/{{ domain }}
  128. owner: www-data
  129. group: adm
  130. mode: 0775
  131. recurse: yes
  132. state: directory
  133.  
  134. handlers:
  135. - name: restart apache2
  136. become: yes
  137. service: name=apache2 state=restarted
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement