Advertisement
Guest User

Untitled

a guest
Oct 13th, 2016
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.10 KB | None | 0 0
  1. #
  2. # Ansible playbook for doing basic setup on a Civcraft server
  3. #
  4.  
  5.  
  6.  
  7. - name: Deploy Civcraft
  8. hosts: all
  9. connection: local
  10. gather_facts: True
  11.  
  12. - hosts: all
  13. vars:
  14. sshd_config: /etc/ssh/sshd_config
  15. docker: false
  16. users:
  17. - maxopoly
  18. - ttk2
  19. - jacky
  20. - rourke
  21. - erocs
  22. - programmerdan
  23.  
  24. tasks:
  25.  
  26. - name: Create Docker group
  27. become: true
  28. group: name=docker state=present
  29. when: "{{ docker }}"
  30.  
  31. - name: Add Primary user
  32. user: name=civcraft-admins state=present groups=wheel,docker password=$6$rounds=656000$kKqCMHLjiIiJ4Wow$WuB4gEHWvj7m6uII.HLDwCfRmWutM.0HDxfG.GmWvmCggLjMq.xmtMdSBYfbduj28xB2l5zGuZlQdzskpTNcb.
  33.  
  34. - name: Add individual users
  35. user: name="{{ item }}" state=present
  36. with_items: "{{ users }}"
  37.  
  38. - name: Setup Keys for Users
  39. authorized_key:
  40. key: "{{ lookup('file', 'keys/{{item}}.pub') }}"
  41. user: "{{ item }}"
  42. manage_dir: yes
  43. with_items: "{{ users }}"
  44.  
  45. - name: Add to Sudoers for Autologin
  46. lineinfile: dest=/etc/sudoers state=present regexp='^Cmnd_Alias' line='Cmnd_Alias CMD_LINE = /bin/byobu, /bin/bash'
  47.  
  48. - name: Add to Sudoers for Auotlogin
  49. lineinfile: dest=/etc/sudoers state=present regexp='^%civcraft-sudo' line='%civcraft-sudo ALL=(civcraft-admins) NOPASSWD{{":"}} CMD_LINE'
  50.  
  51.  
  52. #- name: Update bashrc for user
  53. # lineinfile: dest=/home/"{{ item }}"/.bashrc line='sudo -u civcraft-admins -s' owner="{{ item }}" regexp='^sudo' state=present
  54. # with_items: "{{ users }}"
  55. #
  56. # Don't know why the above does not work
  57. #
  58. - name: Update bashrc for user
  59. shell: echo "sudo -u civcraft-admins -s" >> /home/"{{ item }}"/.bashrc
  60. with_items: "{{ users }}"
  61.  
  62. - name: Disable empty password login
  63. lineinfile: dest={{ sshd_config }} regexp="^#?PermitEmptyPasswords" line="PermitEmptyPasswords no"
  64. notify: restart sshd
  65.  
  66. - name: Disable remote root login
  67. lineinfile: dest={{ sshd_config }} regexp="^#?PermitRootLogin" line="PermitRootLogin no"
  68. notify: restart sshd
  69.  
  70. - name: Disable password login
  71. lineinfile: dest={{ sshd_config }} regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
  72. notify: restart sshd
  73.  
  74. - name: upgrade all packages
  75. yum: name=* state=latest
  76.  
  77. - name: Install epel
  78. yum: name=epel-release state=latest
  79.  
  80. - name: Install OpenJDK 1.8
  81. yum: name=java-1.8.0-openjdk state=latest
  82.  
  83. - name: Add repository
  84. yum_repository:
  85. name: MariaDB
  86. description: MariaDB
  87. baseurl: http://yum.mariadb.org/10.1/centos7-amd64
  88.  
  89.  
  90. - name: Install MariaDB
  91. yum: name=mariadb-server state=latest
  92.  
  93. - name: Install MariaDB-devel
  94. yum: name=mariadb-devel state=latest
  95.  
  96. - name: Install RabbitMQ
  97. yum: name=rabbitmq-server state=latest
  98.  
  99. - name: Install pip
  100. yum: name=python-pip state=latest
  101.  
  102. - name: Install python virtualenv
  103. yum: name=python-virtualenv state=latest
  104.  
  105. - name: Install gcc for pip
  106. yum: name=gcc state=latest
  107.  
  108. - name: Install Python mysql backend
  109. pip: name=MySQL-python
  110.  
  111. - name: Install Duplicity
  112. yum: name=duplicity state=latest
  113.  
  114. - name: Install htop
  115. yum: name=htop state=latest
  116.  
  117. - name: Install Yum-cron
  118. yum: name=yum-cron state=latest
  119.  
  120. - name: Enable Yum-cron
  121. shell: chkconfig yum-cron on
  122.  
  123. - name: Install Byobu
  124. yum: name=byobu state=latest
  125.  
  126. - name: Fix stupid byobu issue
  127. lineinfile: dest=/etc/fstab regexp='^devpts' line="devpts /dev/pts devpts gid=5,mode=620 0 0"
  128.  
  129. - name: Enable rabbit management
  130. shell: rabbitmq-plugins enable rabbitmq_management
  131.  
  132. - name: Start rabbit/mysql
  133. service: name=mysql-server enabled=yes
  134. service: name=rabbitmq-server enabled=yes
  135.  
  136.  
  137. - name: Add RabbitMQ users
  138. rabbitmq_user: "user={{ item.name }} \
  139. password={{ rabbit_non_root_pass }} \
  140. vhost=/ \
  141. configure_priv=^mc\\. \
  142. read_priv=^mc\\. \
  143. write_priv=^mc\\. \
  144. state=present"
  145. with_items: "{{ shards }}"
  146. become: true
  147.  
  148. - name: Add RabbitMQ users for Bungee
  149. rabbitmq_user: "user={{ item }} \
  150. password={{ rabbit_non_root_pass }} \
  151. vhost=/ \
  152. configure_priv=^mc\\. \
  153. read_priv=^mc\\. \
  154. write_priv=^mc\\. \
  155. state=present"
  156. when: inventory_hostname in groups['valhalla']
  157. with_items: "{{ hosts_list }}"
  158. become: true
  159.  
  160. - name: Add Docker repo
  161. yum_repository:
  162. name: Docker
  163. description: Docker repository
  164. baseurl: https://yum.dockerproject.org/repo/main/centos/$releasever/
  165. when: "{{ docker }}"
  166.  
  167. - name: Install Docker
  168. yum: name=docker-engine state=latest
  169. when: "{{ docker }}"
  170.  
  171. - name: Start docker service
  172. service: name=docker state=started
  173. when: "{{ docker }}"
  174.  
  175. - name: Start docker service on startup
  176. shell: chkconfig docker on
  177. when: "{{ docker }}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement