Compare commits

...

10 Commits

Author SHA1 Message Date
alexpolo1
52ab9a6cb9 Merge pull request #2 from alexpolo1/suggestions-03c8025
Ansible code bot recommendations
2024-11-08 08:15:27 +01:00
ansible-code-bot[bot]
9dd769e6b8 Fix ansible-lint rule violations 2024-09-11 20:13:03 +00:00
alexpolo1
03c8025a68 Merge pull request #1 from alexpolo1/config-803f4bd
Ansible code bot initial configurations
2024-09-11 21:26:35 +02:00
ansible-code-bot[bot]
ae84fdc417 Add Ansible code bot config file 2024-09-11 19:12:08 +00:00
803f4bd5d8 tow2 2023-06-13 15:39:16 +02:00
072e82fae1 tower2 2023-06-13 15:28:45 +02:00
3dd31b0489 t1 2023-06-13 15:14:25 +02:00
cae29f1272 awx 2023-06-13 15:07:59 +02:00
bf0532f293 1 2023-06-13 14:04:41 +02:00
09f0660299 web1 2023-06-13 14:01:53 +02:00
22 changed files with 343 additions and 80 deletions

2
.github/ansible-code-bot.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
schedule:
interval: weekly

29
01_awx.yml Normal file
View File

@@ -0,0 +1,29 @@
---
- name: Clean up AWX
hosts: localhost
connection: local
tasks:
- name: Remove Demo Template
awx.awx.job_template:
name: Demo Job Template
organization: Default
state: absent
- name: Remove Demo credential
awx.awx.credential:
name: Demo Credential
credential_type: Machine
state: absent
- name: Remove Demo inventory
awx.awx.inventory:
name: Demo Inventory
organization: Default
state: absent
- name: Remove Demo project
awx.awx.project:
name: Demo Project
organization: Default
state: absent

View File

@@ -7,11 +7,11 @@
tasks:
- name: Create resource group
azure.azcollection.azure_rm_resourcegroup:
name: "webserver_{{ user }}"
name: webserver_{{ user }}
location: northeurope
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
solution: webserver_{{ user }}
delete: ansibletraining
register: rg
- name: Show RG
ansible.builtin.debug:

18
01_azure_tower.yml Normal file
View File

@@ -0,0 +1,18 @@
---
- name: Azure Create RG
hosts: localhost
connection: local
vars:
user: alex
tasks:
- name: Create resource group
azure.azcollection.azure_rm_resourcegroup:
name: webserver_{{ user }}
location: northeurope
tags:
solution: webserver_{{ user }}
delete: ansibletraining
register: rg
- name: Show RG
ansible.builtin.debug:
var: rg

View File

@@ -7,12 +7,10 @@
ansible.builtin.debug:
msg: "{{ ansible_facts }}"
- name: Debug Facts Hostname - Unsafe Text
ansible.builtin.debug:
msg: "{{ ansible_facts['nodename'] }}"
- name: Debug Facts ipv4 - List
ansible.builtin.debug:
msg: "{{ ansible_facts['all_ipv4_addresses'][0] }}"

View File

@@ -8,8 +8,7 @@
ansible.builtin.file:
path: /root/testfile.txt
state: touch
mode: '0755'
mode: "0755"
- name: Add line in file
ansible.builtin.lineinfile:

View File

@@ -19,8 +19,8 @@
name: "{{ item.name }}"
group: "{{ item.groups }}"
loop:
- { name: 'homer', groups: 'Developers' }
- { name: 'bart', groups: 'It' }
- { name: 'lisa', groups: 'Management' }
- { name: 'ned', groups: 'Finance' }
- { name: 'moe', groups: 'Developers' }
- { name: homer, groups: Developers }
- { name: bart, groups: It }
- { name: lisa, groups: Management }
- { name: ned, groups: Finance }
- { name: moe, groups: Developers }

View File

@@ -4,4 +4,4 @@
become: true
roles:
- jesperberth.el_httpd
- jesperberth.el_httpd

View File

@@ -17,7 +17,7 @@
ansible.builtin.get_url:
url: https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
dest: ~/awscliv2.zip
mode: '0700'
mode: "0700"
when: not awsfile.stat.exists
- name: Unzip aws-cli

View File

@@ -41,13 +41,12 @@
rescue:
- name: Print when errors
ansible.builtin.debug:
msg: 'There is an error in this block)'
msg: There is an error in this block)
always:
- name: Always do this
ansible.builtin.debug:
msg: "Will always run"
msg: Will always run
- name: Configure firewall
ansible.posix.firewalld:
@@ -60,7 +59,6 @@
- firewall
- config
handlers:
- name: Firewall reload
ansible.builtin.systemd:

42
01_webserver_azure.yml Normal file
View File

@@ -0,0 +1,42 @@
---
- name: Configure Webserver
hosts: tag_solution_webserver_alex
become: true
vars:
websiteheader: Ansible Playbook
websiteauthor: Alex
tasks:
- name: Install Apache
ansible.builtin.dnf:
name: httpd
state: present
- name: Enable Apache
ansible.builtin.systemd:
name: httpd
enabled: true
state: started
- name: Allow http in firewall
ansible.posix.firewalld:
service: http
permanent: true
state: enabled
immediate: true
notify:
- Reload firewall
- name: Add index.html
ansible.builtin.template:
src: index.html.j2
dest: /var/www/html/index.html
owner: root
group: root
mode: "0755"
handlers:
- name: Reload firewall
ansible.builtin.service:
name: firewalld
state: reloaded

View File

@@ -0,0 +1,39 @@
---
- name: Configure Webserver
hosts: tag_solution_webserver_alex
become: true
tasks:
- name: Install Apache
ansible.builtin.dnf:
name: httpd
state: present
- name: Enable Apache
ansible.builtin.systemd:
name: httpd
enabled: true
state: started
- name: Allow http in firewall
ansible.posix.firewalld:
service: http
permanent: true
state: enabled
immediate: true
notify:
- Reload firewall
- name: Add index.html
ansible.builtin.template:
src: index.html.j2
dest: /var/www/html/index.html
owner: root
group: root
mode: "0755"
handlers:
- name: Reload firewall
ansible.builtin.service:
name: firewalld
state: reloaded

View File

@@ -5,10 +5,10 @@
vars:
user: alex
location: northeurope
virtual_network_name: "webserver_{{ user }}"
virtual_network_name: webserver_{{ user }}
subnet: Webserver
resource_group: "webserver_{{ user }}"
domain_sub: "domain{{ user }}"
resource_group: webserver_{{ user }}
domain_sub: domain{{ user }}
ssh_public_key: "{{lookup('file', '~/.ssh/id_rsa.pub') }}"
tasks:
@@ -16,76 +16,75 @@
azure.azcollection.azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ virtual_network_name }}"
address_prefixes_cidr: "10.99.0.0/16"
address_prefixes_cidr: 10.99.0.0/16
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a subnet
azure.azcollection.azure_rm_subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ virtual_network_name }}"
name: "{{ subnet }}"
address_prefix_cidr: "10.99.0.0/24"
address_prefix_cidr: 10.99.0.0/24
- name: Create a public ip address for webserver
azure_rm_publicipaddress:
register: webserver_pub_ip
azure.azcollection.azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
name: public_ip_webserver
allocation_method: static
domain_name: "webserver{{ domain_sub }}"
domain_name: webserver{{ domain_sub }}
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
register: webserver_pub_ip
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create Security Group for webserver
azure_rm_securitygroup:
azure.azcollection.azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: "webserver_securitygroup"
name: webserver_securitygroup
purge_rules: true
rules:
- name: Allow_SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 100
direction: Inbound
- name: Allow_HTTP
protocol: Tcp
destination_port_range: 80
access: Allow
priority: 101
direction: Inbound
- name: Allow_SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 100
direction: Inbound
- name: Allow_HTTP
protocol: Tcp
destination_port_range: 80
access: Allow
priority: 101
direction: Inbound
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a network interface for webserver
azure_rm_networkinterface:
name: "webserver_nic01"
azure.azcollection.azure_rm_networkinterface:
name: webserver_nic01
resource_group: "{{ resource_group }}"
virtual_network: "{{ virtual_network_name }}"
subnet_name: "{{ subnet }}"
security_group: "webserver_securitygroup"
security_group: webserver_securitygroup
ip_configurations:
- name: "webserver_nic01_ipconfig"
public_ip_address_name: "public_ip_webserver"
primary: True
- name: webserver_nic01_ipconfig
public_ip_address_name: public_ip_webserver
primary: true
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a VM webserver
azure_rm_virtualmachine:
azure.azcollection.azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: "webserver"
name: webserver
os_type: Linux
admin_username: "{{ user }}"
ssh_password_enabled: false
ssh_public_keys:
- path: "/home/{{ user }}/.ssh/authorized_keys"
- path: /home/{{ user }}/.ssh/authorized_keys
key_data: "{{ ssh_public_key }}"
managed_disk_type: Standard_LRS
state: present
@@ -95,13 +94,13 @@
sku: "8_4"
version: latest
vm_size: Standard_A1_v2
network_interfaces: "webserver_nic01"
network_interfaces: webserver_nic01
tags:
solution: "webserver_{{ user }}"
delete: ansibletraining
solution: webserver_{{ user }}
delete: ansibletraining
- name: Show webserver public ip
debug:
ansible.builtin.debug:
msg: "{{ webserver_pub_ip.state.ip_address }}"
- name: Wait for ssh on webserver
@@ -112,4 +111,4 @@
timeout: 600
- name: Add webserver to ssh known_hosts
shell: "ssh-keyscan -t ecdsa {{ webserver_pub_ip.state.ip_address }} >> /home/{{ user }}/.ssh/known_hosts"
ansible.builtin.shell: ssh-keyscan -t ecdsa {{ webserver_pub_ip.state.ip_address }} >> /home/{{ user }}/.ssh/known_hosts

110
02_azure_tower.yml Normal file
View File

@@ -0,0 +1,110 @@
---
- name: Azure Webserver
hosts: localhost
connection: local
vars:
user: alex
location: northeurope
virtual_network_name: webserver_{{ user }}
subnet: Webserver
resource_group: webserver_{{ user }}
domain_sub: domain{{ user }}
tasks:
- name: Create a virtual network
azure.azcollection.azure_rm_virtualnetwork:
resource_group: "{{ resource_group }}"
name: "{{ virtual_network_name }}"
address_prefixes_cidr: 10.99.0.0/16
tags:
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a subnet
azure.azcollection.azure_rm_subnet:
resource_group: "{{ resource_group }}"
virtual_network_name: "{{ virtual_network_name }}"
name: "{{ subnet }}"
address_prefix_cidr: 10.99.0.0/24
- name: Create a public ip address for webserver
register: webserver_pub_ip
azure.azcollection.azure_rm_publicipaddress:
resource_group: "{{ resource_group }}"
name: public_ip_webserver
allocation_method: static
domain_name: webserver{{ domain_sub }}
tags:
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create Security Group for webserver
azure.azcollection.azure_rm_securitygroup:
resource_group: "{{ resource_group }}"
name: webserver_securitygroup
purge_rules: true
rules:
- name: Allow_SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 100
direction: Inbound
- name: Allow_HTTP
protocol: Tcp
destination_port_range: 80
access: Allow
priority: 101
direction: Inbound
tags:
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a network interface for webserver
azure.azcollection.azure_rm_networkinterface:
name: webserver_nic01
resource_group: "{{ resource_group }}"
virtual_network: "{{ virtual_network_name }}"
subnet_name: "{{ subnet }}"
security_group: webserver_securitygroup
ip_configurations:
- name: webserver_nic01_ipconfig
public_ip_address_name: public_ip_webserver
primary: true
tags:
solution: webserver_{{ user }}
delete: ansibletraining
- name: Create a VM webserver
azure.azcollection.azure_rm_virtualmachine:
resource_group: "{{ resource_group }}"
name: webserver
os_type: Linux
admin_username: "{{ user }}"
ssh_password_enabled: false
ssh_public_keys:
- path: /home/{{ user }}/.ssh/authorized_keys
key_data: "{{ ssh_public_key }}"
managed_disk_type: Standard_LRS
state: present
image:
offer: RHEL
publisher: RedHat
sku: "8_4"
version: latest
vm_size: Standard_A1_v2
network_interfaces: webserver_nic01
tags:
solution: webserver_{{ user }}
delete: ansibletraining
- name: Show webserver public ip
ansible.builtin.debug:
msg: "{{ webserver_pub_ip.state.ip_address }}"
- name: Wait for ssh on webserver
ansible.builtin.wait_for:
host: "{{ webserver_pub_ip.state.ip_address }}"
port: 22
delay: 10
timeout: 600

View File

@@ -19,4 +19,4 @@
password: P@ssw0rd!
state: present
groups:
- corp
- corp

View File

@@ -8,13 +8,13 @@
ansible.builtin.file:
path: /mnt/resource/
state: directory
mode: '0755'
mode: "0755"
- name: Download files
ansible.builtin.get_url:
url: "{{ item }}"
dest: /mnt/resource/
mode: '0600'
mode: "0600"
loop:
- https://github.com/git-for-windows/git/releases/download/v2.30.0.windows.1/Git-2.30.0-64-bit.exe
- https://www.python.org/ftp/python/3.8.7/python-3.8.7-embed-amd64.zip

View File

@@ -13,4 +13,4 @@
dest: /var/www/html/index.php
owner: root
group: root
mode: '0755'
mode: "0755"

14
03_azure.yml Normal file
View File

@@ -0,0 +1,14 @@
---
- name: Remove Webserver
hosts: localhost
connection: local
vars:
user: alex
tasks:
- name: Delete resource group
azure.azcollection.azure_rm_resourcegroup:
name: webserver_{{ user }}
location: northeurope
state: absent
force_delete_nonempty: true

13
index.html.j2 Normal file
View File

@@ -0,0 +1,13 @@
<html>
<header>
<title>{{ websiteheader }}</title></header>
<body>
<h1>Welcome to {{ websiteheader }}</h1>
<h3>This site was created with Ansible by {{ websiteauthor }}
<p>Hosted on {{ inventory_hostname }} running {{ ansible_facts['os_family'] }}<p>
</body>
</html>

View File

@@ -1,9 +1,9 @@
---
# defaults file for webserver
package:
- httpd
- mod_ssl
- openssl
- php
- php-gd
- php-mbstring
- httpd
- mod_ssl
- openssl
- php
- php-gd
- php-mbstring

View File

@@ -1,3 +1,4 @@
---
galaxy_info:
author: Alex
description: a role for installing a webserver
@@ -44,12 +45,12 @@ galaxy_info:
- "8"
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,

View File

@@ -1,7 +1,8 @@
---
plugin: azure_rm
auth_source: auto
include_vm_resource_groups:
- '*'
- "*"
keyed_groups:
- prefix: tag
key: tags