ansible/roles/env_setup/tasks/main.yml (82 lines of code) (raw):

# # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # --- - name: apt-get update apt: update_cache: yes cache_valid_time: 86400 become: yes #Tasks file can include smaller files if wanted #All commons tasks goes here - name: Create a new user group "{{ group }}" group: name={{ group }} become: yes - name: Create a new user "{{ user }}" user: name={{ user }} group={{ group }} become: yes #- name: Install Firewalld (Debian) # apt: name=firewalld state=latest update_cache=yes # become: yes # # # TODO: stop iptables service, can't have both iptables and firewalld on same host # # firewalld is just a frontend for iptables - so we can't remove it # # if we try to stop non existing service ansible fails. ## - name: Stop iptables, ip6tables services ## service: name="{{ item }}" state=stopped ## with_items: ## - iptables ## - ip6tables # #- name: Start firewalld service # service: name=firewalld state=started # become: yes # ## Issues with firewalld module on Ubuntu https://github.com/ansible/ansible/issues/24855 ## So as workaround, just calling firewall-cmd directly for now #- name: open firewall port 22 for SSH connections (Debian) # command: firewall-cmd --zone=public --add-port=22/tcp # become: yes # #- name: open firewall port 22 for SSH connections permanently (Debian) # command: firewall-cmd --zone=public --permanent --add-port=22/tcp # become: yes # #- name: open firewall port 80 # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # rich_rule: rule family=ipv4 port port="80" protocol=tcp accept # become_user: root # #- name: open firewall port 443 # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # rich_rule: rule family=ipv4 port port="443" protocol=tcp accept # become_user: root # #- name: open firewall port {{ custos_int_grpc_port }} # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # rich_rule: rule family=ipv4 port port="{{ custos_int_grpc_port }}" protocol=tcp accept # become_user: root - name: Allow everything and enable UFW community.general.ufw: state: enabled policy: allow become: yes - name: Set logging community.general.ufw: logging: 'on' become: yes - community.general.ufw: rule: limit port: ssh proto: tcp become: yes - community.general.ufw: rule: allow name: OpenSSH become: yes - name: Allow all access to tcp port 80 community.general.ufw: rule: allow port: '80' proto: tcp become: yes - name: Allow all access to tcp port 80 community.general.ufw: rule: allow port: '443' proto: tcp become: yes - name: Allow all access to tcp port 80 community.general.ufw: rule: allow port: '{{ custos_int_grpc_port }}' proto: tcp become: yes #- name: allow all networks to access custos ports # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # port: "{{ custos_int_grpc_port }}/tcp" # become: yes # #- name: allow all networks to access port 80 # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # port: "80/tcp" # become: yes # # #- name: allow all networks to access 443 # firewalld: # zone: public # permanent: yes # state: enabled # immediate: yes # port: "443/tcp" # become: yes - name: install JDK 17 apt: name: - openjdk-17-jdk state: present update_cache: yes become: yes - name: set {{ java_home }} as default alternatives: name="{{ item.exe }}" link="/usr/bin/{{ item.exe }}" path="{{ item.path }}/{{ item.exe }}" with_items: - { path: "{{ java_home }}/bin", exe: 'java' } - { path: "{{ java_home }}/bin", exe: 'keytool' } - { path: "{{ java_home }}/bin", exe: 'javac' } - { path: "{{ java_home }}/bin", exe: 'javadoc' } become: yes tags: - always - name: download {{ apache_maven_version }} get_url: url="{{ apache_maven_url }}" dest="/opt/{{ apache_maven_version }}-bin.tar.gz" become: yes - name: unzip maven unarchive: src: /opt/{{ apache_maven_version }}-bin.tar.gz dest: /opt remote_src: yes become: yes - name: add maven to PATH template: src: maven.sh dest: /etc/profile.d/maven.sh become: yes