Trying a whole buncha stuff
This commit is contained in:
parent
11771acc17
commit
62b95d4e22
@ -5,6 +5,7 @@ router.net.enp.one
|
||||
romulus.net.enp.one
|
||||
remus.net.enp.one
|
||||
novis.tre2.local
|
||||
jupiter.net.enp.one
|
||||
|
||||
[vms]
|
||||
vm-db-mysql.net.enp.one
|
47
en1.toml
Normal file
47
en1.toml
Normal file
@ -0,0 +1,47 @@
|
||||
[all.vars]
|
||||
ansible_user = "ansible"
|
||||
protected_users = ["root", "ansible"]
|
||||
enable_gui = false
|
||||
enable_ssh = true
|
||||
enable_ssh_password_auth = false
|
||||
disable_sudo_password = false
|
||||
enable_networkd = true
|
||||
|
||||
[servers.hosts.jupiter]
|
||||
ansible_host = "jupiter.net.enp.one"
|
||||
description = "EN1 System Control Node"
|
||||
targets = ["admin", "network"]
|
||||
networking:
|
||||
eno1:
|
||||
dhcp: Yes
|
||||
eno2:
|
||||
addresses: ["192.168.255.10/24"]
|
||||
[servers.hosts.romulus]
|
||||
ansible_host = "romulus.net.enp.one"
|
||||
[servers.hosts.remus]
|
||||
ansible_host = "remus.net.enp.one"
|
||||
[servers.hosts.novis]
|
||||
ansible_host = "novis.tre2.local"
|
||||
[[servers.children]]
|
||||
"vms"
|
||||
|
||||
|
||||
[vms.vars]
|
||||
disable_sudo_password = true
|
||||
|
||||
[vms.hosts.gitea]
|
||||
ansible_host = "vm-host-gitea.net.enp.one"
|
||||
[vms.hosts.plex]
|
||||
ansible_host = "vm-host-plex.net.enp.one"
|
||||
[vms.hosts.bitwarden]
|
||||
ansible_host = "vm-host-bitwarden.net.enp.one"
|
||||
[vms.hosts.nextcloud]
|
||||
ansible_host = "vm-host-nextcloud.net.enp.one"
|
||||
[vms.hosts.minecraft]
|
||||
ansible_host = "vm-host-minecraft.net.enp.one"
|
||||
|
||||
|
||||
[workstations.vars]
|
||||
enable_gui = true
|
||||
enable_ssh = false
|
||||
enable_networkd = false
|
108
en1.yaml
Normal file
108
en1.yaml
Normal file
@ -0,0 +1,108 @@
|
||||
---
|
||||
all:
|
||||
vars:
|
||||
ansible_user: ansible
|
||||
protected_users: ["root", "ansible"]
|
||||
enable_gui: false
|
||||
enable_ssh: true
|
||||
enable_ssh_password_auth: false
|
||||
disable_sudo_password: false
|
||||
enable_networkd: true
|
||||
network:
|
||||
hosts:
|
||||
router:
|
||||
ansible_host: router.net.enp.one
|
||||
ansible_network_os: edgeos
|
||||
ansible_connection: network_cli
|
||||
description: EN1 Core Gateway
|
||||
targets: ["admin", "network"]
|
||||
servers:
|
||||
vars:
|
||||
required_os: centos_8
|
||||
hosts:
|
||||
jupiter:
|
||||
ansible_host: jupiter.net.enp.one
|
||||
description: EN1 System Control Server
|
||||
targets: ["admin", "network"]
|
||||
networking:
|
||||
eno1:
|
||||
dhcp: true
|
||||
eno2:
|
||||
addresses: ["192.168.255.10/24"]
|
||||
romulus:
|
||||
ansible_host: romulus.net.enp.one
|
||||
description: EN1 Hypervisor/Datastore
|
||||
targets: ["admin", "datastore", "hypervisor"]
|
||||
networking:
|
||||
em2:
|
||||
addresses: ["192.168.255.20/24"]
|
||||
remus:
|
||||
ansible_host: remus.net.enp.one
|
||||
description: EN1 Hypervisor/Datastore
|
||||
targets: ["admin", "datastore", "hypervisor"]
|
||||
em2:
|
||||
addresses: ["192.168.255.30/24"]
|
||||
novis:
|
||||
ansible_host: novis.tre2.local
|
||||
description: EN1 Backup Storage
|
||||
targets: ["admin", "datastore"]
|
||||
children: ["vms"]
|
||||
vms:
|
||||
vars:
|
||||
disable_sudo_password: true
|
||||
required_os: centos_8
|
||||
hosts:
|
||||
gitea:
|
||||
ansible_host: vm-host-gitea.net.enp.one
|
||||
description: Application Host: Gitea VCS
|
||||
targets: ["admin", "vcs"]
|
||||
networking:
|
||||
eth0:
|
||||
dhcp: true
|
||||
plex:
|
||||
ansible_host: vm-host-plex.net.enp.one
|
||||
description: Application Host: Plex Media Server
|
||||
targets: ["admin", "plx"]
|
||||
networking:
|
||||
eth0:
|
||||
dhcp: true
|
||||
bitwarden:
|
||||
ansible_host: vm-host-bitwarden.net.enp.one
|
||||
description: Application Host: Bitwarden Password Manager
|
||||
targets: ["admin", "ssv"]
|
||||
networking:
|
||||
eth0:
|
||||
dhcp: true
|
||||
nextcloud:
|
||||
ansible_host: vm-host-nextcloud.net.enp.one
|
||||
description: Application Host: Nextcloud Web Storage
|
||||
targets: ["admin", "cfs"]
|
||||
networking:
|
||||
eth0:
|
||||
dhcp: true
|
||||
workstations:
|
||||
vars:
|
||||
enable_gui: true
|
||||
enable_ssh: false
|
||||
enable_networkd: false
|
||||
hosts:
|
||||
omega:
|
||||
ansible_host: localhost
|
||||
description: Last
|
||||
required_os: centos_7
|
||||
targets: ["admin", "recovery"]
|
||||
vigil-nox:
|
||||
ansible_host: localhost
|
||||
required_os: fedora_30
|
||||
description: Watchman
|
||||
targets: ["admin", "desktop"]
|
||||
serico-nox:
|
||||
ansible_host: localhost
|
||||
description: Silk
|
||||
required_os: fedora_30
|
||||
targets: ["admin", "desktop"]
|
||||
inerro:
|
||||
ansible_host: localhost
|
||||
description: Wanderer
|
||||
required_os: fedora_30
|
||||
targets: ["admin", "desktop"]
|
17
en2.yaml
Normal file
17
en2.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
all:
|
||||
vars:
|
||||
ansible_user: ansible
|
||||
protected_users: ["root", "ansible"]
|
||||
enable_gui: false
|
||||
enable_ssh: true
|
||||
enable_ssh_password_auth: false
|
||||
disable_sudo_password: false
|
||||
enable_networkd: false
|
||||
ungrouped:
|
||||
hosts:
|
||||
nimbus-1:
|
||||
ansible_host: en2.enp.one
|
||||
description: EN2 Digitial Ocean Cloud Server
|
||||
required_os: centos_7
|
||||
targets: ["admin", "network"]
|
20
hosts/jupiter.net.enp.one.yml
Normal file
20
hosts/jupiter.net.enp.one.yml
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
description: "EN1 System Control Node"
|
||||
|
||||
targets:
|
||||
- admin
|
||||
- network
|
||||
|
||||
networking:
|
||||
eno1:
|
||||
dhcp: Yes
|
||||
eno2:
|
||||
addresses: ["192.168.255.10/24"]
|
||||
|
||||
# demo:
|
||||
# addresses: ["192.168.1.10/24", "192.168.100.10/24"]
|
||||
# dhcp: true
|
||||
# dhcp6: true
|
||||
# gateway: 192.168.1.1
|
||||
# dns: ["8.8.8.8", "8.8.4.4"]
|
||||
# vlans: ["101", "200"]
|
@ -1,9 +1,26 @@
|
||||
---
|
||||
- hosts: all
|
||||
name: Ansible python bindings
|
||||
tags: always
|
||||
tags:
|
||||
- always
|
||||
- initialize
|
||||
tasks:
|
||||
- import_tasks: tasks/centos/bindings.yml
|
||||
- name: Install CentOS python bindings
|
||||
when: ansible_distribution == "CentOS"
|
||||
- import_tasks: tasks/fedora/bindings.yml
|
||||
become: true
|
||||
dnf:
|
||||
state: latest
|
||||
name:
|
||||
- python3-libselinux
|
||||
- python3-policycoreutils
|
||||
- python3-firewall
|
||||
|
||||
- name: Install Fedora python bindings
|
||||
when: ansible_distribution == "Fedora"
|
||||
become: true
|
||||
dnf:
|
||||
state: latest
|
||||
name:
|
||||
- libselinux-python
|
||||
- policycoreutils-python
|
||||
- python3-firewall
|
||||
|
38
playbooks/deploy-homepage.yml
Normal file
38
playbooks/deploy-homepage.yml
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
- hosts: nimbus-1.net.enp.one
|
||||
name: Deploy main landing page at enpaul.net
|
||||
vars:
|
||||
# Local directory to use for cloning and building the documentation site
|
||||
DIR_BUILD: /tmp/docs
|
||||
# Remote directory to install the site at
|
||||
DIR_DEPLOY: /usr/share/nginx/enpaul.net/html
|
||||
tasks:
|
||||
- name: Upload static site to remote
|
||||
copy:
|
||||
src: "{{ DIR_BUILD }}/site/"
|
||||
dest: "/tmp/docs/"
|
||||
- name: Remove legacy site
|
||||
become: true
|
||||
file:
|
||||
path: "{{ DIR_DEPLOY }}"
|
||||
state: absent
|
||||
- name: Copy static site to deployment directory
|
||||
become: true
|
||||
copy:
|
||||
src: "/tmp/docs/"
|
||||
dest: "{{ DIR_DEPLOY }}"
|
||||
remote_src: true
|
||||
owner: root
|
||||
group: nginx
|
||||
mode: 0755
|
||||
setype: httpd_sys_content_t
|
||||
|
||||
- name: Clean up local build directory
|
||||
delegate_to: 127.0.0.1
|
||||
file:
|
||||
path: "{{ DIR_BUILD }}"
|
||||
state: absent
|
||||
- name: Clean up remote temp directory
|
||||
file:
|
||||
path: /tmp/docs
|
||||
state: absent
|
@ -1,16 +1,61 @@
|
||||
# Global network bashrc/profile file
|
||||
# Updated 2019-11-12
|
||||
|
||||
function venv() {
|
||||
DIR="/home/$USERNAME/.venvs"
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No command specified"
|
||||
|
||||
elif [ $1 = "--help" ] || [ $1 = '-h' ]; then
|
||||
echo "Custom python Virtualenv manager
|
||||
\"Because pipenv is too hard and everything else sucks\"
|
||||
|
||||
Commands:
|
||||
list List available virtualenvs
|
||||
show Alias of list
|
||||
delete <venv> Delete a virtualenv
|
||||
del Alias of delete
|
||||
rm Alias of delete
|
||||
load <venv> Activate a virtualenv for usage
|
||||
new <venv> <python> Create a new virtualenv. If <python> is not specified,
|
||||
then the system default python is used
|
||||
"
|
||||
elif [ $1 = "list" ] || [ $1 = "show" ] || [ $1 = "ls" ]; then
|
||||
ls $DIR
|
||||
elif [ $1 = "load" ]; then
|
||||
. $DIR/$2/bin/activate
|
||||
elif [ $1 = "new" ]; then
|
||||
virtualenv $DIR/$2 --python=$3
|
||||
elif [ $1 = "delete" ] || [ $1 = "del" ] || [ $1 = "rm" ]; then
|
||||
rm -rf $DIR/$2
|
||||
elif [ $1 = "go" ]; then
|
||||
cd $DIR/$2
|
||||
fi
|
||||
}
|
||||
|
||||
function parse_git_branch() {
|
||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
|
||||
}
|
||||
|
||||
function up() { cd $(eval printf '../'%.0s {1..$1}); }
|
||||
|
||||
function pipin() { pip freeze | grep $1; }
|
||||
|
||||
alias bk='cd -'
|
||||
alias fuck='sudo $(history -p \!\!)'
|
||||
alias doc='cd ~/Documents'
|
||||
alias explorer='nautilus'
|
||||
alias dn='cd ~/Downloads'
|
||||
alias version='uname -orp && lsb_release -a | grep Description'
|
||||
alias activate='source ./bin/activate'
|
||||
alias ipconfig='ip address show'
|
||||
alias cls='clear'
|
||||
alias mklink='ln -s'
|
||||
alias ls='ls -lshF --color --group-directories-first --time-style=long-iso'
|
||||
alias ls='/usr/bin/ls -lshF --color --group-directories-first --time-style=long-iso'
|
||||
alias gg='cd ~/Git'
|
||||
parse_git_branch() {
|
||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
|
||||
}
|
||||
alias gmtime='/usr/bin/date -u --iso-8601=seconds'
|
||||
alias date='/usr/bin/date --iso-8601=seconds'
|
||||
alias whatismyip='curl https://icanhazip.com/'
|
||||
|
||||
export rc=/home/$USERNAME/.bashrc
|
||||
export PS1="\[\e[0;97m\]\[\e[37m\]\u\[\e[1;94m\]@\[\e[94m\]\H\[\e[0;33m\]$(parse_git_branch) \[\e[37m\]\w\[\e[33m\] \[\e[0;97m\]$\[\e[0m\] "
|
||||
|
34
playbooks/initialize.yml
Normal file
34
playbooks/initialize.yml
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
- import_playbook: dependencies.yml
|
||||
|
||||
- name: Setup environment
|
||||
hosts: all:!network
|
||||
tags:
|
||||
- initialize
|
||||
vars:
|
||||
restart_services: true
|
||||
roles:
|
||||
- role: packages
|
||||
vars:
|
||||
update: true
|
||||
exclude: [] # Override the default kernel exclusion
|
||||
clean: true
|
||||
tasks:
|
||||
- name: Set hostname
|
||||
become: true
|
||||
hostname:
|
||||
name: "{{ inventory_hostname }}"
|
||||
- name: Install global bashrc
|
||||
become: true
|
||||
copy:
|
||||
src: bashrc.sh
|
||||
dest: /etc/profile.d/ZA-enpn-bashrc.sh
|
||||
mode: 0644
|
||||
|
||||
- name: Configure services
|
||||
hosts: all:!network
|
||||
tags:
|
||||
- initialize
|
||||
roles:
|
||||
- role: sshd
|
||||
- role: networkd
|
@ -1,29 +1,11 @@
|
||||
---
|
||||
- import_playbook: dependencies.yml
|
||||
- import_playbook: initialize.yml
|
||||
|
||||
|
||||
- hosts: all
|
||||
name: Init
|
||||
tags: initialize
|
||||
tasks:
|
||||
- name: Set hostname
|
||||
become: true
|
||||
hostname:
|
||||
name: "{{ default_host if default_host is defined else inventory_hostname }}"
|
||||
|
||||
- name: Install global bashrc
|
||||
become: true
|
||||
copy:
|
||||
src: bashrc.sh
|
||||
dest: /etc/profile.d/global-bashrc.sh
|
||||
mode: 0644
|
||||
|
||||
- import_tasks: tasks/sshd/banner.yml
|
||||
|
||||
|
||||
- hosts: all
|
||||
name: System packages
|
||||
tags: initialize
|
||||
- name: System packages
|
||||
hosts: all
|
||||
tags:
|
||||
- provision
|
||||
- initialize
|
||||
tasks:
|
||||
- name: Load package variables
|
||||
include_vars:
|
||||
|
1
playbooks/roles
Symbolic link
1
playbooks/roles
Symbolic link
@ -0,0 +1 @@
|
||||
../roles
|
@ -2,6 +2,8 @@
|
||||
- hosts: all
|
||||
name: Upgrade packages
|
||||
tasks:
|
||||
|
||||
|
||||
- name: Upgrade YUM packages
|
||||
when: ansible_distribution == "CentOS"
|
||||
become: true
|
||||
|
@ -2,7 +2,12 @@
|
||||
- hosts: router.net.enp.one
|
||||
name: Configure users on router
|
||||
connection: network_cli
|
||||
<<<<<<< Updated upstream
|
||||
gather_facts: false
|
||||
=======
|
||||
vars:
|
||||
ansible_network_os: edgeos
|
||||
>>>>>>> Stashed changes
|
||||
tasks:
|
||||
- import_tasks: tasks/users-preprocessing.yml
|
||||
|
||||
@ -18,9 +23,9 @@
|
||||
edgeos_config:
|
||||
lines:
|
||||
- set system login user {{ item.name }} level admin
|
||||
with_items:
|
||||
- "{{ local_admin_users | difference([None]) }}"
|
||||
loop: "{{ local_admin_users | difference([None]) }}"
|
||||
|
||||
<<<<<<< Updated upstream
|
||||
- name: Assemble loadkey files
|
||||
edgeos_command:
|
||||
commands:
|
||||
@ -32,3 +37,23 @@
|
||||
lines:
|
||||
- loadkey {{ item }} /tmp/{{ item }}.keys
|
||||
loop: "{{ local_admin_users | difference([None]) }}"
|
||||
=======
|
||||
- name: Assemble key files for loadkey usage
|
||||
edgeos_command:
|
||||
commands: sudo tee /tmp/{{ item.name }}.keys<<<"{{ item.sshkeys | join('\n') }}"
|
||||
loop: "{{ local_admin_users | difference([None]) }}"
|
||||
|
||||
# - name: Assemble loadkey files
|
||||
# copy:
|
||||
# src: keys/{{ item }}
|
||||
# dest: /tmp
|
||||
# with_items:
|
||||
# - "{{ local_admin_users | difference([None]) }}"
|
||||
|
||||
# - name: Load keys
|
||||
# edgeos_config:
|
||||
# lines:
|
||||
# - loadkey {{ item }} /tmp/{{ item }}/*.pub
|
||||
# with_items:
|
||||
# - "{{ local_admin_users | difference([None]) }}"
|
||||
>>>>>>> Stashed changes
|
||||
|
1
roles/docker_host/tasks/main.yml
Normal file
1
roles/docker_host/tasks/main.yml
Normal file
@ -0,0 +1 @@
|
||||
---
|
49
roles/networkd/tasks/main.yml
Normal file
49
roles/networkd/tasks/main.yml
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
- import_tasks: packages.yml
|
||||
|
||||
- name: Delete networkd config directory
|
||||
become: true
|
||||
file:
|
||||
path: /etc/systemd/network
|
||||
state: absent
|
||||
|
||||
- name: Create the networkd config directory
|
||||
become: true
|
||||
file:
|
||||
path: /etc/systemd/network
|
||||
state: directory
|
||||
|
||||
- name: Make network files
|
||||
when: networking is defined
|
||||
become: true
|
||||
template:
|
||||
src: network.j2
|
||||
dest: "/etc/systemd/network/{{ item.key }}.network"
|
||||
loop: "{{ networking | dict2items }}"
|
||||
|
||||
- name: Make netdev files
|
||||
when: networking is defined
|
||||
become: true
|
||||
template:
|
||||
src: netdev.j2
|
||||
dest: "/etc/systemd/network/{{ item.key }}.netdev"
|
||||
loop: "{{ networking | dict2items }}"
|
||||
|
||||
- import_tasks: services.yml
|
||||
|
||||
- name: Symlink so systemd-resolved uses /etc/resolv.conf
|
||||
become: true
|
||||
file:
|
||||
dest: /etc/resolv.conf
|
||||
src: /run/systemd/resolve/resolv.conf
|
||||
state: link
|
||||
force: true
|
||||
setype: net_conf_t
|
||||
|
||||
- name: Symlink so /etc/resolv.conf uses systemd
|
||||
become: true
|
||||
file:
|
||||
dest: /etc/systemd/system/multi-user.target.wants/systemd-resolved.service
|
||||
src: /usr/lib/systemd/system/systemd-resolved.service
|
||||
state: link
|
||||
force: true
|
8
roles/networkd/tasks/packages.yml
Normal file
8
roles/networkd/tasks/packages.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Install systemd-networkd
|
||||
become: true
|
||||
dnf:
|
||||
state: latest
|
||||
name:
|
||||
- systemd-resolved
|
||||
- systemd-networkd
|
41
roles/networkd/tasks/services.yml
Normal file
41
roles/networkd/tasks/services.yml
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
- name: Disable NetworkManager
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: false
|
||||
loop:
|
||||
- network
|
||||
- NetworkManager
|
||||
- NetworkManager-wait-online
|
||||
|
||||
- name: Enable systemd-networkd
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
enabled: true
|
||||
loop:
|
||||
- systemd-networkd
|
||||
- systemd-resolved
|
||||
- systemd-networkd-wait-online
|
||||
|
||||
- name: Stop NetworkManager
|
||||
when: restart_services | default(false) == true
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
state: stopped
|
||||
loop:
|
||||
- network
|
||||
- NetworkManager
|
||||
- NetworkManager-wait-online
|
||||
|
||||
- name: Start systemd-networkd
|
||||
become: true
|
||||
systemd:
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
loop:
|
||||
- systemd-networkd
|
||||
- systemd-resolved
|
||||
- systemd-networkd-wait-online
|
11
roles/networkd/templates/netdev.j2
Normal file
11
roles/networkd/templates/netdev.j2
Normal file
@ -0,0 +1,11 @@
|
||||
# ANSIBLE MANAGED FILE - DO NOT EDIT
|
||||
[NetDev]
|
||||
Name={{ item.key }}
|
||||
Kind=vlan
|
||||
{% if item.value['kind'] == 'vlan' %}
|
||||
|
||||
[VLAN]
|
||||
Id={{ item.value['vlan'] }}
|
||||
{% endif %}
|
||||
|
||||
# EOF
|
27
roles/networkd/templates/network.j2
Normal file
27
roles/networkd/templates/network.j2
Normal file
@ -0,0 +1,27 @@
|
||||
# ANSIBLE MANAGED FILE - DO NOT EDIT
|
||||
[Match]
|
||||
Name={{ item.key }}
|
||||
|
||||
[Network]
|
||||
DHCP={{ 'Yes' if item.value['dhcp'] | default(false) == true else 'No' }}
|
||||
IPv6AcceptRA={{ 'Yes' if item.value['dhcp6'] | default(false) == true else 'No' }}
|
||||
{% if item.value['addresses'] is defined %}
|
||||
{% for ip_addr in item.value['addresses'] %}
|
||||
Address={{ ip_addr }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value['dns'] is defined %}
|
||||
{% for dns_server in item.value['dns'] %}
|
||||
DNS={{ dns_server }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if item.value['gateway'] is defined %}
|
||||
Gateway={{ item.value['gateway'] }}
|
||||
{% endif %}
|
||||
{% if item.value['vlans'] is defined %}
|
||||
{% for vlan_tag in item.value['vlans'] %}
|
||||
VLAN={{ item.key }}.{{ vlan_tag }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
# EOF
|
@ -1,9 +1,9 @@
|
||||
---
|
||||
- name: Install python bindings using YUM
|
||||
- name: Install CentOS python bindings
|
||||
become: true
|
||||
yum:
|
||||
dnf:
|
||||
state: latest
|
||||
name:
|
||||
- libselinux-python
|
||||
- policycoreutils-python
|
||||
- python-firewall
|
||||
- python3-libselinux
|
||||
- python3-policycoreutils
|
||||
- python3-firewall
|
||||
|
@ -1,7 +1,7 @@
|
||||
---
|
||||
- name: Enable Extra Packages for Enterprise Linux
|
||||
become: true
|
||||
yum_repository:
|
||||
dnf_repository:
|
||||
name: epel
|
||||
description: Extra Packages for Enterprise Linux
|
||||
baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/
|
||||
@ -12,12 +12,6 @@
|
||||
state: present
|
||||
key: https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
|
||||
|
||||
- name: Enable Inline with Upstream Stable
|
||||
become: true
|
||||
yum:
|
||||
state: latest
|
||||
name: https://centos7.iuscommunity.org/ius-release.rpm
|
||||
|
||||
- name: Disable yum subscription-manager
|
||||
become: true
|
||||
lineinfile:
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
- name: Install python bindings using DNF
|
||||
- name: Install Fedora python bindings
|
||||
become: true
|
||||
dnf:
|
||||
state: latest
|
||||
|
@ -1,3 +1,4 @@
|
||||
---
|
||||
- name: Install SSH Banner
|
||||
become: true
|
||||
template:
|
||||
|
@ -12,6 +12,7 @@ packages_global:
|
||||
- policycoreutils-python
|
||||
- python-devel
|
||||
- python-virtualenv
|
||||
- systemd-devel
|
||||
- unzip
|
||||
- vim
|
||||
- vim-minimal
|
||||
@ -24,5 +25,4 @@ packages_yum:
|
||||
- bash-completion-extras
|
||||
- nc
|
||||
- nfs-utils
|
||||
- python36u
|
||||
- wget
|
||||
|
Reference in New Issue
Block a user