lint fixes
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
---
|
||||
- name: Create Cloud Infra
|
||||
hosts: localhost
|
||||
gather_facts: no
|
||||
gather_facts: false
|
||||
vars:
|
||||
infra_provider: undef
|
||||
aws_public_key: undef
|
||||
tasks:
|
||||
- include_role:
|
||||
- name: Include provider role
|
||||
ansible.builtin.include_role:
|
||||
name: "demo.cloud.{{ infra_provider }}"
|
||||
tasks_from: create_infra
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: Create Cloud Infra
|
||||
hosts: localhost
|
||||
gather_facts: no
|
||||
gather_facts: false
|
||||
vars:
|
||||
vm_name: undef
|
||||
vm_owner: undef
|
||||
@@ -9,17 +9,17 @@
|
||||
vm_blueprint: undef
|
||||
|
||||
tasks:
|
||||
- name: "Importing {{ vm_blueprint | upper }} Blueprint"
|
||||
include_vars:
|
||||
- name: "Importing {{ vm_blueprint | upper }}"
|
||||
ansible.builtin.include_vars:
|
||||
file: "blueprints/{{ vm_blueprint }}.yml"
|
||||
|
||||
- name: "Check Provider Compatibility"
|
||||
assert:
|
||||
ansible.builtin.assert:
|
||||
that: "'{{ vm_provider }}' in {{ vm_blueprint_providers }}"
|
||||
fail_msg: "{{ vm_blueprint | upper }} is not available for {{ vm_provider | upper }}"
|
||||
when: "vm_blueprint_providers is defined"
|
||||
|
||||
- name: "Building {{ vm_blueprint | upper }} in {{ vm_provider | upper }}"
|
||||
include_role:
|
||||
- name: "Building {{ vm_blueprint | upper }}"
|
||||
ansible.builtin.include_role:
|
||||
name: "demo.cloud.{{ vm_provider }}"
|
||||
tasks_from: create_vm
|
||||
@@ -17,7 +17,7 @@ controller_projects:
|
||||
- name: Ansible Cloud Content Lab - AWS
|
||||
organization: Default
|
||||
scm_type: git
|
||||
wait: yes
|
||||
wait: true
|
||||
# scm_url: https://github.com/ansible-content-lab/aws.infrastructure_config_demos.git
|
||||
scm_url: https://github.com/willtome/aws.infrastructure_config_demos.git
|
||||
default_environment: Cloud Services Execution Environment
|
||||
|
||||
@@ -21,4 +21,3 @@ aws_env_tag: prod
|
||||
aws_purpose_tag: ansible_demo
|
||||
aws_ansiblegroup_tag: cloud
|
||||
aws_ec2_wait: true
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
register: aws_gateway
|
||||
|
||||
- name: Create security group internal
|
||||
amazon.aws.ec2_group:
|
||||
amazon.aws.ec2_security_group:
|
||||
state: present
|
||||
name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-sec-group"
|
||||
region: "{{ aws_region }}"
|
||||
@@ -85,7 +85,7 @@
|
||||
vpc_id: "{{ aws_vpc.vpc.id }}"
|
||||
cidr: "{{ aws_subnet_cidr }}"
|
||||
region: "{{ aws_region }}"
|
||||
map_public: yes
|
||||
map_public: true
|
||||
tags:
|
||||
Name: "{{ aws_vpc_name }}-{{ aws_vpc_prefix }}-subnet"
|
||||
owner: "{{ aws_vpc_name }}"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
register: aws_subnet
|
||||
|
||||
- name: AWS | CREATE VM | save subnet id
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
aws_subnet_id: "{{ aws_subnet.subnets | map(attribute='id') | list | last }}"
|
||||
|
||||
- name: AWS| CREATE VM | find ami
|
||||
@@ -20,14 +20,14 @@
|
||||
register: amis
|
||||
|
||||
- name: AWS| CREATE VM | save ami
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
aws_instance_ami: >
|
||||
{{ (amis.images | selectattr('name', 'defined') | sort(attribute='creation_date'))[-2] }}
|
||||
|
||||
- name: AWS| CREATE VM | create instance
|
||||
amazon.aws.ec2_instance:
|
||||
network:
|
||||
assign_public_ip: yes
|
||||
assign_public_ip: true
|
||||
key_name: "{{ aws_keypair_name }}"
|
||||
instance_type: "{{ aws_instance_size }}"
|
||||
image_id: "{{ aws_instance_ami.image_id }}"
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
- name: create HTML report
|
||||
- name: Create HTML report
|
||||
ansible.builtin.template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/network.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy CSS over
|
||||
- name: Copy CSS over
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy logos over
|
||||
- name: Copy logos over
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ file_path }}"
|
||||
@@ -26,7 +26,7 @@
|
||||
- "webpage_logo.png"
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "router.png"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
# - name: Display link to Linux patch report
|
||||
# ansible.builtin.debug:
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
detailedreport: True
|
||||
detailedreport: true
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
- name: create HTML report
|
||||
- name: Create HTML report
|
||||
ansible.builtin.template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/windows.html"
|
||||
|
||||
- name: copy CSS over
|
||||
- name: Copy CSS over
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
|
||||
- name: copy logos over
|
||||
- name: Copy logos over
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ file_path }}"
|
||||
@@ -19,6 +19,6 @@
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "server.png"
|
||||
|
||||
- name: display link to inventory report
|
||||
- name: Display link to inventory report
|
||||
ansible.builtin.debug:
|
||||
msg: "Please go to http://{{ ansible_host }}/windows.html"
|
||||
@@ -1,3 +1,3 @@
|
||||
EMAIL_FROM: tower@shadowman.dev
|
||||
email_from: tower@shadowman.dev
|
||||
to_emails: alex@shadowman.dev,tower@shadowman.dev
|
||||
EMAIL_TO: "{{ to_emails.split(',') }}"
|
||||
to_emails_list: "{{ to_emails.split(',') }}"
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
ansible.builtin.template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/windowspatch.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy CSS over
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy logo over
|
||||
ansible.builtin.copy:
|
||||
src: "webpage_logo.png"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Display link to Patch report
|
||||
ansible.builtin.debug:
|
||||
@@ -35,4 +35,4 @@
|
||||
subtype: html
|
||||
delegate_to: localhost
|
||||
become: false
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
---
|
||||
- name: get packages
|
||||
- name: Get packages
|
||||
ansible.builtin.package_facts:
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: get services
|
||||
- name: Get services
|
||||
ansible.builtin.service_facts:
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: upgrade packages (yum)
|
||||
yum:
|
||||
- name: Upgrade packages (yum)
|
||||
ansible.builtin.yum:
|
||||
name: '*'
|
||||
state: latest
|
||||
state: latest # noqa: package-latest - Intended to update packages to latest
|
||||
exclude: "{{ exclude_packages }}"
|
||||
when: ansible_pkg_mgr == "yum"
|
||||
register: patchingresult_yum
|
||||
|
||||
- name: upgrade packages (dnf)
|
||||
- name: Upgrade packages (dnf)
|
||||
ansible.builtin.dnf:
|
||||
name: '*'
|
||||
state: latest
|
||||
state: latest # noqa: package-latest - Intended to update packages to latest
|
||||
exclude: "{{ exclude_packages }}"
|
||||
when: ansible_pkg_mgr == "dnf"
|
||||
register: patchingresult_dnf
|
||||
@@ -28,7 +28,7 @@
|
||||
register: result
|
||||
changed_when: result.rc == 1
|
||||
failed_when: result.rc > 1
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Reboot Server if Necessary
|
||||
ansible.builtin.reboot:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
---
|
||||
- name: Scan packages
|
||||
demo.patching.win_scan_packages:
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Scan Services
|
||||
demo.patching.win_scan_services:
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Install Windows Updates
|
||||
ansible.windows.win_updates:
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
detailedreport: True
|
||||
detailedreport: true
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
- name: create HTML report
|
||||
- name: Create HTML report
|
||||
ansible.builtin.template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/linux.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy CSS over
|
||||
- name: Copy CSS over
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy logos over
|
||||
- name: Copy logos over
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ file_path }}"
|
||||
@@ -20,8 +20,8 @@
|
||||
- "webpage_logo.png"
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "server.png"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: display link to inventory report
|
||||
- name: Display link to inventory report
|
||||
ansible.builtin.debug:
|
||||
msg: "Please go to http://{{ hostvars[report_server]['ansible_host'] }}/reports/linux.html"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
EMAIL_FROM: tower@shadowman.dev
|
||||
email_from: tower@shadowman.dev
|
||||
to_emails: alex@shadowman.dev,tower@shadowman.dev
|
||||
EMAIL_TO: "{{ to_emails.split(',') }}"
|
||||
to_emails_list: "{{ to_emails.split(',') }}"
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
ansible.builtin.template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/linuxpatch.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy CSS over
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy logo over
|
||||
ansible.builtin.copy:
|
||||
src: "webpage_logo.png"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Display link to Linux patch report
|
||||
ansible.builtin.debug:
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
---
|
||||
- include_vars: "{{ ansible_system }}.yml"
|
||||
- name: Inlcude system variables
|
||||
ansible.builtin.include_vars: "{{ ansible_system }}.yml"
|
||||
|
||||
- yum:
|
||||
- name: Install httpd package
|
||||
ansible.builtin.yum:
|
||||
name: httpd
|
||||
state: latest
|
||||
check_mode: no
|
||||
state: installed
|
||||
check_mode: false
|
||||
|
||||
- file:
|
||||
- name: Create reports directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ doc_root }}/{{ reports_dir }}"
|
||||
state: directory
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- copy:
|
||||
- name: Copy .htaccess
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ doc_root }}/{{ reports_dir }}/.htaccess"
|
||||
content: Options +Indexes
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- service:
|
||||
- name: Install httpd service
|
||||
ansible.builtin.service:
|
||||
name: httpd
|
||||
state: started
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
---
|
||||
- include_vars: "{{ ansible_system }}.yml"
|
||||
- name: Include system vars
|
||||
ansible.builtin.include_vars: "{{ ansible_system }}.yml"
|
||||
|
||||
- name: Install IIS
|
||||
ansible.windows.win_feature:
|
||||
name: Web-Server
|
||||
state: present
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Start IIS service
|
||||
ansible.windows.win_service:
|
||||
name: W3Svc
|
||||
state: started
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Create Directory
|
||||
ansible.windows.win_file:
|
||||
path: "{{ doc_root }}\\{{ reports_dir }}"
|
||||
state: directory
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Enable Directory Browsing
|
||||
ansible.windows.win_powershell:
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
---
|
||||
- include_vars: "{{ ansible_system }}.yml"
|
||||
- name: Include system vars
|
||||
ansible.builtin.include_vars: "{{ ansible_system }}.yml"
|
||||
|
||||
- name: get reports
|
||||
- name: Get reports
|
||||
ansible.builtin.find:
|
||||
paths: "{{ doc_root }}/{{ reports_dir }}"
|
||||
patterns: '*.html'
|
||||
register: reports
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: publish landing page
|
||||
- name: Publish landing page
|
||||
ansible.builtin.template:
|
||||
src: linux_report.j2
|
||||
dest: "{{ doc_root }}/index.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy CSS over
|
||||
- name: Copy CSS
|
||||
ansible.builtin.copy:
|
||||
src: "css"
|
||||
dest: "{{ doc_root }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy logos over
|
||||
- name: Copy logos
|
||||
ansible.builtin.copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ doc_root }}"
|
||||
@@ -30,5 +31,4 @@
|
||||
- "webpage_logo.png"
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "report.png"
|
||||
check_mode: no
|
||||
|
||||
check_mode: false
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
---
|
||||
- include_tasks: apache.yml
|
||||
- name: Include Linux tasks
|
||||
ansible.builtin.include_tasks: apache.yml
|
||||
when: ansible_system == 'Linux'
|
||||
|
||||
- include_tasks: iis.yml
|
||||
- name: Include Windows tasks
|
||||
ansible.builtin.include_tasks: iis.yml
|
||||
when: ansible_system == 'Win32NT'
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
---
|
||||
- include_vars: "{{ ansible_system }}.yml"
|
||||
- name: Include system variables
|
||||
ansible.builtin.include_vars: "{{ ansible_system }}.yml"
|
||||
|
||||
- name: get reports
|
||||
- name: Get reports
|
||||
ansible.windows.win_find:
|
||||
paths: "{{ doc_root }}/{{ reports_dir }}"
|
||||
patterns: '*.html'
|
||||
register: reports
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: publish landing page
|
||||
ansible.builtin.win_template:
|
||||
- name: Publish landing page
|
||||
ansible.windows.win_template:
|
||||
src: windows_report.j2
|
||||
dest: "{{ doc_root }}/index.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy CSS over
|
||||
ansible.builtin.win_copy:
|
||||
- name: Copy CSS
|
||||
ansible.windows.win_copy:
|
||||
src: "css"
|
||||
dest: "{{ doc_root }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy logos over
|
||||
ansible.builtin.win_copy:
|
||||
- name: Copy logos
|
||||
ansible.windows.win_copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ doc_root }}"
|
||||
directory_mode: true
|
||||
@@ -30,5 +31,4 @@
|
||||
- "webpage_logo.png"
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "report.png"
|
||||
check_mode: no
|
||||
|
||||
check_mode: false
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
---
|
||||
detailedreport: True
|
||||
detailedreport: true
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
---
|
||||
- name: create HTML report
|
||||
- name: Create HTML report
|
||||
ansible.windows.win_template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/windows.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy CSS over
|
||||
- name: Copy CSS over
|
||||
ansible.windows.win_copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: copy logos over
|
||||
- name: Copy logos over
|
||||
ansible.windows.win_copy:
|
||||
src: "{{ item }}"
|
||||
dest: "{{ file_path }}"
|
||||
@@ -21,7 +21,7 @@
|
||||
- "webpage_logo.png"
|
||||
- "redhat-ansible-logo.svg"
|
||||
- "server.png"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
# - name: display link to inventory report
|
||||
# ansible.builtin.debug:
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
---
|
||||
file_path: C:\Inetpub\wwwroot\reports
|
||||
@@ -1,3 +1,4 @@
|
||||
EMAIL_FROM: tower@shadowman.dev
|
||||
---
|
||||
email_from: tower@shadowman.dev
|
||||
to_emails: alex@shadowman.dev,tower@shadowman.dev
|
||||
EMAIL_TO: "{{ to_emails.split(',') }}"
|
||||
to_emails_list: "{{ to_emails.split(',') }}"
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
ansible.windows.win_template:
|
||||
src: report.j2
|
||||
dest: "{{ file_path }}/windowspatch.html"
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy CSS over
|
||||
ansible.windows.win_copy:
|
||||
src: "css"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Copy logo over
|
||||
ansible.windows.win_copy:
|
||||
src: "webpage_logo.png"
|
||||
dest: "{{ file_path }}"
|
||||
directory_mode: true
|
||||
check_mode: no
|
||||
check_mode: false
|
||||
|
||||
- name: Display link to Patch report
|
||||
ansible.builtin.debug:
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
---
|
||||
file_path: C:\Inetpub\wwwroot\reports
|
||||
@@ -1,67 +1,66 @@
|
||||
---
|
||||
- name: verify operating system
|
||||
assert:
|
||||
- name: Verify operating system
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_os_family == 'RedHat'
|
||||
- (ansible_distribution_major_version == '7') or (ansible_distribution_major_version == '8')
|
||||
|
||||
- name: set hostname
|
||||
hostname:
|
||||
- name: Set hostname
|
||||
ansible.builtin.hostname:
|
||||
name: "{{ instance_name }}"
|
||||
|
||||
- name: remove rhui client packages
|
||||
yum:
|
||||
- name: Remove rhui client packages
|
||||
ansible.builtin.yum:
|
||||
name:
|
||||
- google-rhui-client*
|
||||
- rh-amazon-rhui-client*
|
||||
state: removed
|
||||
|
||||
- name: get current repos
|
||||
command:
|
||||
- name: Get current repos
|
||||
ansible.builtin.command:
|
||||
cmd: ls /etc/yum.repos.d/
|
||||
register: repos
|
||||
changed_when: False
|
||||
changed_when: false
|
||||
|
||||
- name: remove existing rhui repos
|
||||
file:
|
||||
- name: Remove existing rhui repos
|
||||
ansible.builtin.file:
|
||||
path: "/etc/yum.repos.d/{{ item }}"
|
||||
state: absent
|
||||
loop: "{{ repos.stdout_lines }}"
|
||||
|
||||
- name: install satellite certificate
|
||||
yum:
|
||||
- name: Install satellite certificate
|
||||
ansible.builtin.yum:
|
||||
name: "{{ satellite_url }}/pub/katello-ca-consumer-latest.noarch.rpm"
|
||||
state: present
|
||||
validate_certs: no
|
||||
validate_certs: false
|
||||
disable_gpg_check: true
|
||||
|
||||
- name: register system via subscription-mangler
|
||||
redhat_subscription:
|
||||
- name: Register system via subscription-mangler
|
||||
community.general.redhat_subscription:
|
||||
state: present
|
||||
activationkey: "{{ activation_key }}"
|
||||
consumer_name: "{{ instance_name }}"
|
||||
org_id: "{{ org_id | default('Default_Organization') }}"
|
||||
throttle: 1
|
||||
|
||||
- name: include repos
|
||||
include_vars: "vars/{{ ansible_distribution + ansible_distribution_major_version }}.yml"
|
||||
- name: Include repos
|
||||
ansible.builtin.include_vars: "vars/{{ ansible_distribution + ansible_distribution_major_version }}.yml"
|
||||
|
||||
- name: enable repos
|
||||
rhsm_repository:
|
||||
- name: Enable repos
|
||||
community.general.rhsm_repository:
|
||||
name: "{{ rhsm_enabled_repos }}"
|
||||
state: enabled
|
||||
|
||||
- name: install satellite client
|
||||
yum:
|
||||
- name: Install satellite client
|
||||
ansible.builtin.yum:
|
||||
name:
|
||||
- katello-host-tools
|
||||
- katello-host-tools-tracer
|
||||
state: latest
|
||||
state: installed
|
||||
|
||||
- name: enable remote execution
|
||||
authorized_key:
|
||||
- name: Enable remote execution
|
||||
ansible.posix.authorized_key:
|
||||
user: "{{ rex_user }}"
|
||||
state: present
|
||||
key: "{{ satellite_url }}:9090/ssh/pubkey"
|
||||
validate_certs: no
|
||||
|
||||
validate_certs: false
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
galaxy_info:
|
||||
author: morenod
|
||||
description: Role created to configure a client to execute openscap policies based on the information obtained from a Red Hat Satellite/Foreman Host.
|
||||
@@ -1,73 +1,73 @@
|
||||
---
|
||||
- name: Install openscap client packages
|
||||
yum:
|
||||
ansible.builtin.yum:
|
||||
name:
|
||||
- openscap-scanner
|
||||
- rubygem-foreman_scap_client
|
||||
state: present
|
||||
|
||||
- name: Get Policy parameters
|
||||
uri:
|
||||
ansible.builtin.uri:
|
||||
url: "{{ foreman_server_url }}/api/v2/compliance/policies"
|
||||
method: GET
|
||||
user: "{{ foreman_username }}"
|
||||
password: "{{ foreman_password }}"
|
||||
force_basic_auth: yes
|
||||
force_basic_auth: true
|
||||
body_format: json
|
||||
validate_certs: False
|
||||
validate_certs: false
|
||||
register: policies
|
||||
no_log: "{{ foreman_operations_scap_client_secure_logging }}"
|
||||
|
||||
- name: Build policy {{ policy_name }} parameters
|
||||
set_fact:
|
||||
- name: Build policy {{ policy_name }}
|
||||
ansible.builtin.set_fact:
|
||||
policy: "{{ policy | default([]) }} + {{ [item] }}"
|
||||
loop: "{{ policies.json.results }}"
|
||||
when: item.name in policy_name or policy_name == 'all'
|
||||
|
||||
- name: Fail if no policy found with required name
|
||||
fail:
|
||||
ansible.builtin.fail:
|
||||
when: policy is not defined
|
||||
|
||||
- name: Get scap content information
|
||||
uri:
|
||||
ansible.builtin.uri:
|
||||
url: "{{ foreman_server_url }}/api/v2/compliance/scap_contents/{{ item.scap_content_id }}"
|
||||
method: GET
|
||||
user: "{{ foreman_username }}"
|
||||
password: "{{ foreman_password }}"
|
||||
force_basic_auth: yes
|
||||
force_basic_auth: false
|
||||
body_format: json
|
||||
validate_certs: False
|
||||
validate_certs: false
|
||||
register: scapcontents
|
||||
loop: "{{ policy }}"
|
||||
no_log: "{{ foreman_operations_scap_client_secure_logging }}"
|
||||
|
||||
- name: Get tailoring content information
|
||||
uri:
|
||||
ansible.builtin.uri:
|
||||
url: "{{ foreman_server_url }}/api/v2/compliance/tailoring_files/{{ item.tailoring_file_id }}"
|
||||
method: GET
|
||||
user: "{{ foreman_username }}"
|
||||
password: "{{ foreman_password }}"
|
||||
force_basic_auth: yes
|
||||
force_basic_auth: false
|
||||
body_format: json
|
||||
validate_certs: False
|
||||
validate_certs: false
|
||||
register: tailoringfiles
|
||||
when: item.tailoring_file_id | int > 0 | d(False)
|
||||
loop: "{{ policy }}"
|
||||
no_log: "{{ foreman_operations_scap_client_secure_logging }}"
|
||||
|
||||
- name: Build scap content parameters
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
scap_content: "{{ scap_content | default({}) | combine({item.json.id: item.json}) }}"
|
||||
loop: "{{ scapcontents.results }}"
|
||||
|
||||
- name: Build tailoring content parameters
|
||||
set_fact:
|
||||
ansible.builtin.set_fact:
|
||||
tailoring_files: "{{ tailoring_files | default({}) | combine({item.json.id: item.json}) }}"
|
||||
when: item.json is defined
|
||||
loop: "{{ tailoringfiles.results }}"
|
||||
|
||||
- name: Apply openscap client configuration template
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: openscap_client_config.yaml.j2
|
||||
dest: /etc/foreman_scap_client/config.yaml
|
||||
mode: "0644"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
gather_facts: no
|
||||
- name: Submit feedback
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Submit Feedback
|
||||
ansible.builtin.uri:
|
||||
@@ -9,5 +10,5 @@
|
||||
body: "ifq&entry.1139138403={{ email }} &entry.735882959={{ feedback }}&sumbit=Submit"
|
||||
|
||||
- name: Thank you
|
||||
debug:
|
||||
ansible.builtin.debug:
|
||||
msg: Thank you for your feedback!
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
hosts: "{{ _hosts | default('web') }}"
|
||||
become: true
|
||||
vars:
|
||||
- harden_firewall: false
|
||||
- harden_time: false
|
||||
- harden_ssh: false
|
||||
- harden_pci: false
|
||||
harden_firewall: false
|
||||
harden_time: false
|
||||
harden_ssh: false
|
||||
harden_pci: false
|
||||
|
||||
tasks:
|
||||
- name: Configure Firewall
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
hosts: "{{ _hosts | default(omit) }}"
|
||||
become: true
|
||||
vars:
|
||||
# compliance_profile: undef
|
||||
compliance_profile_configured: undef
|
||||
|
||||
tasks:
|
||||
- name: Check OS Type
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
- name: Linux server patching
|
||||
hosts: "{{ _hosts | default(omit) }}"
|
||||
become: true
|
||||
strategy: linear
|
||||
vars:
|
||||
report_server: node1
|
||||
|
||||
@@ -23,7 +22,7 @@
|
||||
when:
|
||||
- ansible_local.insights.system_id is not defined
|
||||
|
||||
- name: Run the Insights Client Scan
|
||||
- name: Run the Insights Client Scan # noqa: no-changed-when
|
||||
ansible.builtin.command: insights-client
|
||||
when:
|
||||
- not ansible_check_mode
|
||||
@@ -31,7 +30,7 @@
|
||||
|
||||
- name: Deploy report server
|
||||
delegate_to: "{{ report_server }}"
|
||||
run_once: true
|
||||
run_once: true # noqa: run-once[task]
|
||||
block:
|
||||
- name: Build report server
|
||||
ansible.builtin.include_role:
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
become: true
|
||||
|
||||
tasks:
|
||||
- name: Gather recent vmstat info
|
||||
- name: Gather recent vmstat info # noqa: no-changed-when
|
||||
ansible.builtin.command: /bin/vmstat 1 5
|
||||
register: vmstat
|
||||
|
||||
- name: Gather top CPU hogs
|
||||
- name: Gather top CPU hogs # noqa: no-changed-when
|
||||
ansible.builtin.command: ps -eo user,pid,size,pcpu,cmd --sort=-pcpu
|
||||
register: pscpu
|
||||
|
||||
- name: Gather top memory hogs
|
||||
- name: Gather top memory hogs # noqa: no-changed-when
|
||||
ansible.builtin.command: ps -eo user,pid,size,pcpu,cmd --sort=-size
|
||||
register: pssize
|
||||
|
||||
|
||||
@@ -31,28 +31,22 @@
|
||||
# ansible.builtin.set_fact:
|
||||
# ansible_host: "{{ lookup('community.general.dig', inventory_hostname)}}"
|
||||
|
||||
- hosts: node1
|
||||
- name: Create network reports
|
||||
hosts: "{{ report_server }}"
|
||||
become: true
|
||||
vars:
|
||||
report_server: node1
|
||||
web_path: /var/www/html/reports/
|
||||
|
||||
tasks:
|
||||
- ansible.builtin.include_role:
|
||||
- name: Build report server
|
||||
ansible.builtin.include_role:
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- demo.patching.report_server
|
||||
- demo.patching.build_report_network
|
||||
|
||||
- block:
|
||||
- ansible.builtin.include_role:
|
||||
name: "{{ item }}"
|
||||
loop:
|
||||
- demo.patching.report_server
|
||||
- demo.patching.build_report_network
|
||||
|
||||
- ansible.builtin.include_role:
|
||||
- name: Update landing page
|
||||
ansible.builtin.include_role:
|
||||
name: demo.patching.report_server
|
||||
tasks_from: linux_landing_page
|
||||
delegate_to: "{{ report_server }}"
|
||||
run_once: yes
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
- name: Promote content view version
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: no
|
||||
gather_facts: false
|
||||
vars:
|
||||
organization: Default Organization
|
||||
lifecycle_environment: undef
|
||||
@@ -9,7 +10,7 @@
|
||||
content_view: undef
|
||||
|
||||
tasks:
|
||||
- name: Promote Content View
|
||||
- name: Promote Content View # noqa: args[module] - required parameters provided with environment vars
|
||||
redhat.satellite.content_view_version:
|
||||
content_view: "{{ content_view }}"
|
||||
organization: "{{ organization }}"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
- name: Publish content view version
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: no
|
||||
gather_facts: false
|
||||
vars:
|
||||
content_view: undef
|
||||
env: undef
|
||||
@@ -11,7 +12,7 @@
|
||||
publish_retry_interval: 15
|
||||
|
||||
tasks:
|
||||
- name: publish content view
|
||||
- name: Publish content view # noqa: args[module] - required parameters provided with environment vars
|
||||
redhat.satellite.content_view_version:
|
||||
content_view: "{{ content_view }}"
|
||||
organization: "{{ organization }}"
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
ansible.builtin.pause: seconds="{{ 5 | random }}"
|
||||
|
||||
- name: Run SCAP Scan
|
||||
ansible.builtin.shell: "/usr/bin/foreman_scap_client {{ item.id }}"
|
||||
ansible.builtin.command: "/usr/bin/foreman_scap_client {{ item.id }}"
|
||||
loop: "{{ policy }}"
|
||||
when: policy_scan == 'all' or item.name in policy_scan
|
||||
register: scap_cmd_output
|
||||
failed_when: "'Error' in command_result.stderr"
|
||||
|
||||
@@ -74,7 +74,7 @@ controller_inventory_sources:
|
||||
key: foreman_operatingsystem_name
|
||||
- prefix: scap
|
||||
key: foreman_compliance_status_label
|
||||
validate_certs: no
|
||||
validate_certs: false
|
||||
|
||||
controller_templates:
|
||||
- name: LINUX / Register with Satellite
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
gather_facts: no
|
||||
- name: Setup satellite configuration
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
vars_files: setup.yml
|
||||
vars:
|
||||
refresh_satellite_manifest: true
|
||||
|
||||
tasks:
|
||||
- name: refresh manifest
|
||||
- name: Refresh manifest # noqa: args[module] - required parameters provided with environment vars
|
||||
redhat.satellite.subscription_manifest:
|
||||
organization: "Default Organization"
|
||||
state: refreshed
|
||||
when: refresh_satellite_manifest
|
||||
|
||||
- name: Setup CV
|
||||
include_role:
|
||||
ansible.builtin.include_role:
|
||||
name: redhat.satellite.content_views
|
||||
|
||||
- name: Publish CV
|
||||
include_role:
|
||||
ansible.builtin.include_role:
|
||||
name: redhat.satellite.content_view_publish
|
||||
vars:
|
||||
satellite_content_views:
|
||||
@@ -25,10 +26,10 @@
|
||||
- RHEL8
|
||||
|
||||
- name: Setup Lifecycle Environment
|
||||
include_role:
|
||||
ansible.builtin.include_role:
|
||||
name: redhat.satellite.lifecycle_environments
|
||||
|
||||
- name: redhat.satellite.content_view_publish CV
|
||||
- name: Content view publish # noqa: args[module] - required parameters provided with environment vars
|
||||
redhat.satellite.content_view_version:
|
||||
organization: "{{ satellite_organization }}"
|
||||
content_view: "{{ item }}"
|
||||
@@ -41,10 +42,10 @@
|
||||
- RHEL8
|
||||
|
||||
- name: Setup activation_keys
|
||||
include_role:
|
||||
ansible.builtin.include_role:
|
||||
name: redhat.satellite.activation_keys
|
||||
|
||||
- name: Add SCAP Tailoring File
|
||||
- name: Add SCAP Tailoring File # noqa: args[module] - required parameters provided with environment vars
|
||||
redhat.satellite.scap_tailoring_file:
|
||||
name: RHEL7_STIG
|
||||
organizations: "{{ satellite_organization }}"
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
url: https://docs.google.com/forms/d/e/1FAIpQLSdIZ77YpETjEfGOoYlXtMnQiU-6M7QFlb2hJA4ujo25QYb2jw/formResponse
|
||||
method: POST
|
||||
body: "ifq&entry.1569353616={{ demo }} &entry.498055740={{ lookup('ansible.builtin.env', 'AWX_HOST') }}&sumbit=Submit"
|
||||
ignore_errors: true
|
||||
ignore_errors: true # noqa: ignore-errors - connectivity should not fail play
|
||||
|
||||
- name: Print Message
|
||||
ansible.builtin.debug:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
- name: Windows updates
|
||||
hosts: "{{ _hosts | default('os_windows') }}"
|
||||
strategy: linear
|
||||
vars:
|
||||
report_server: win1
|
||||
|
||||
@@ -12,7 +11,7 @@
|
||||
|
||||
- name: Build report server
|
||||
delegate_to: "{{ report_server }}"
|
||||
run_once: true
|
||||
run_once: true # noqa: run-once[task]
|
||||
block:
|
||||
- name: Install report server
|
||||
ansible.builtin.include_role:
|
||||
|
||||
Reference in New Issue
Block a user