Use with_first_found to selectively run tasks.
This commit is contained in:
parent
c261677c0b
commit
6770baf7f9
@ -7,7 +7,7 @@ Tested on:
|
|||||||
* Archlinux
|
* Archlinux
|
||||||
* Debian 10, 11, 12
|
* Debian 10, 11, 12
|
||||||
* Ubuntu 20.04, 22.04
|
* Ubuntu 20.04, 22.04
|
||||||
* !RedHat 7.9
|
* RedHat 7.9
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
56
tasks/ArchLinux.yml
Normal file
56
tasks/ArchLinux.yml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: vim.yml
|
||||||
|
|
||||||
|
- name: Ensure Arch Linux sources bash_aliases
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
# regexp: '\.bash_aliases'
|
||||||
|
line: '[ -f ~/.bash_aliases ] && source ~/.bash_aliases'
|
||||||
|
create: yes
|
||||||
|
|
||||||
|
- name: Copy shell configuration
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: inputrc
|
||||||
|
dest: "{{ item }}/.inputrc"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Copy bash aliases
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: bash_aliases
|
||||||
|
dest: "{{ item }}/.bash_aliases"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Add root bashrc shell history configuration
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: '^(export )?HISTCONTROL='
|
||||||
|
line: 'HISTCONTROL=ignoreboth'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root bashrc and vim configuration for RedHat
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: "{{ item.regexp }}"
|
||||||
|
line: "{{ item.line }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- regexp: '^(export )?VISUAL='
|
||||||
|
line: 'export VISUAL=vim'
|
||||||
|
- regexp: '^(export )?EDITOR='
|
||||||
|
line: 'export EDITOR=vim'
|
||||||
|
- regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
line: 'export SUDO_EDITOR=vim'
|
||||||
|
|
||||||
|
- name: Add functional alias to restart a service and show the log
|
||||||
|
blockinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
block: |
|
||||||
|
pheonix() {
|
||||||
|
systemctl restart $1;journalctl -fu $1
|
||||||
|
}
|
55
tasks/Debian.yml
Normal file
55
tasks/Debian.yml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: vim-Debian.yml
|
||||||
|
|
||||||
|
- name: Ensure Debian sources .bash_aliases
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
# regexp: '\.bash_aliases'
|
||||||
|
line: 'source ~/.bash_aliases'
|
||||||
|
|
||||||
|
- name: Copy shell configuration
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: inputrc
|
||||||
|
dest: "{{ item }}/.inputrc"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Copy bash aliases
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: bash_aliases
|
||||||
|
dest: "{{ item }}/.bash_aliases"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Add root bashrc shell history configuration
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: '^(export )?HISTCONTROL='
|
||||||
|
line: 'HISTCONTROL=ignoreboth'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root bashrc and vim configuration.
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: "{{ item.regexp }}"
|
||||||
|
line: "{{ item.line }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- regexp: '^(export )?VISUAL='
|
||||||
|
line: 'export VISUAL=vim.basic'
|
||||||
|
- regexp: '^(export )?EDITOR='
|
||||||
|
line: 'export EDITOR=vim.basic'
|
||||||
|
- regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
line: 'export SUDO_EDITOR=vim.basic'
|
||||||
|
|
||||||
|
- name: Add functional alias to restart a service and show the log
|
||||||
|
blockinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
block: |
|
||||||
|
pheonix() {
|
||||||
|
systemctl restart $1;journalctl -fu $1
|
||||||
|
}
|
58
tasks/RedHat-7.yml
Normal file
58
tasks/RedHat-7.yml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: vim.yml
|
||||||
|
when: ansible_os_family != 'Debian'
|
||||||
|
|
||||||
|
#- name: Ensure Arch Linux sources bash_aliases
|
||||||
|
# lineinfile:
|
||||||
|
# path: /root/.bashrc
|
||||||
|
# # regexp: '\.bash_aliases'
|
||||||
|
# line: '[ -f ~/.bash_aliases ] && source ~/.bash_aliases'
|
||||||
|
# create: yes
|
||||||
|
# when: ansible_os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: Copy shell configuration
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: inputrc
|
||||||
|
dest: "{{ item }}/.inputrc"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
#- name: Copy bash aliases
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# src: bash_aliases
|
||||||
|
# dest: "{{ item }}/.bash_aliases"
|
||||||
|
# loop:
|
||||||
|
# - /etc/skel
|
||||||
|
# - /root
|
||||||
|
# - "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
#- name: Add root bashrc shell history configuration
|
||||||
|
# lineinfile:
|
||||||
|
# path: /root/.bashrc
|
||||||
|
# regexp: '^(export )?HISTCONTROL='
|
||||||
|
# line: 'HISTCONTROL=ignoreboth'
|
||||||
|
# state: present
|
||||||
|
#
|
||||||
|
#- name: Add root bashrc and vim configuration for RedHat
|
||||||
|
# lineinfile:
|
||||||
|
# path: /root/.bashrc
|
||||||
|
# regexp: "{{ item.regexp }}"
|
||||||
|
# line: "{{ item.line }}"
|
||||||
|
# state: present
|
||||||
|
# with_items:
|
||||||
|
# - regexp: '^(export )?VISUAL='
|
||||||
|
# line: 'export VISUAL=vim'
|
||||||
|
# - regexp: '^(export )?EDITOR='
|
||||||
|
# line: 'export EDITOR=vim'
|
||||||
|
# - regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
# line: 'export SUDO_EDITOR=vim'
|
||||||
|
#
|
||||||
|
#- name: Add functional alias to restart a service and show the log
|
||||||
|
# blockinfile:
|
||||||
|
# path: /root/.bashrc
|
||||||
|
# block: |
|
||||||
|
# pheonix() {
|
||||||
|
# systemctl restart $1;journalctl -fu $1
|
||||||
|
# }
|
50
tasks/Ubuntu.yml
Normal file
50
tasks/Ubuntu.yml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: vim-Debian.yml
|
||||||
|
|
||||||
|
- name: Copy shell configuration
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: inputrc
|
||||||
|
dest: "{{ item }}/.inputrc"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Copy bash aliases
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: bash_aliases
|
||||||
|
dest: "{{ item }}/.bash_aliases"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Add root bashrc shell history configuration
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: '^(export )?HISTCONTROL='
|
||||||
|
line: 'HISTCONTROL=ignoreboth'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root bashrc and vim configuration.
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: "{{ item.regexp }}"
|
||||||
|
line: "{{ item.line }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- regexp: '^(export )?VISUAL='
|
||||||
|
line: 'export VISUAL=vim.basic'
|
||||||
|
- regexp: '^(export )?EDITOR='
|
||||||
|
line: 'export EDITOR=vim.basic'
|
||||||
|
- regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
line: 'export SUDO_EDITOR=vim.basic'
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: Add functional alias to restart a service and show the log
|
||||||
|
blockinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
block: |
|
||||||
|
pheonix() {
|
||||||
|
systemctl restart $1;journalctl -fu $1
|
||||||
|
}
|
84
tasks/default.yml
Normal file
84
tasks/default.yml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: vim-Debian.yml
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- import_tasks: vim.yml
|
||||||
|
when: ansible_os_family != 'Debian'
|
||||||
|
|
||||||
|
- name: Ensure Arch Linux sources bash_aliases
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
# regexp: '\.bash_aliases'
|
||||||
|
line: '[ -f ~/.bash_aliases ] && source ~/.bash_aliases'
|
||||||
|
create: yes
|
||||||
|
when: ansible_os_family == 'Archlinux'
|
||||||
|
|
||||||
|
- name: Ensure Debian sources .bash_aliases
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
# regexp: '\.bash_aliases'
|
||||||
|
line: 'source ~/.bash_aliases'
|
||||||
|
when: ansible_distribution == 'Debian' # Not Ubuntu, which should already have this
|
||||||
|
|
||||||
|
- name: Copy shell configuration
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: inputrc
|
||||||
|
dest: "{{ item }}/.inputrc"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Copy bash aliases
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: bash_aliases
|
||||||
|
dest: "{{ item }}/.bash_aliases"
|
||||||
|
loop:
|
||||||
|
- /etc/skel
|
||||||
|
- /root
|
||||||
|
- "{{ ansible_env.HOME }}/"
|
||||||
|
|
||||||
|
- name: Add root bashrc shell history configuration
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: '^(export )?HISTCONTROL='
|
||||||
|
line: 'HISTCONTROL=ignoreboth'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add root bashrc and vim configuration.
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: "{{ item.regexp }}"
|
||||||
|
line: "{{ item.line }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- regexp: '^(export )?VISUAL='
|
||||||
|
line: 'export VISUAL=vim.basic'
|
||||||
|
- regexp: '^(export )?EDITOR='
|
||||||
|
line: 'export EDITOR=vim.basic'
|
||||||
|
- regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
line: 'export SUDO_EDITOR=vim.basic'
|
||||||
|
when: ansible_os_family == 'Debian'
|
||||||
|
|
||||||
|
- name: Add root bashrc and vim configuration for RedHat
|
||||||
|
lineinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
regexp: "{{ item.regexp }}"
|
||||||
|
line: "{{ item.line }}"
|
||||||
|
state: present
|
||||||
|
with_items:
|
||||||
|
- regexp: '^(export )?VISUAL='
|
||||||
|
line: 'export VISUAL=vim'
|
||||||
|
- regexp: '^(export )?EDITOR='
|
||||||
|
line: 'export EDITOR=vim'
|
||||||
|
- regexp: '^(export )?SUDO_EDITOR='
|
||||||
|
line: 'export SUDO_EDITOR=vim'
|
||||||
|
when: ansible_os_family != 'Debian'
|
||||||
|
|
||||||
|
- name: Add functional alias to restart a service and show the log
|
||||||
|
blockinfile:
|
||||||
|
path: /root/.bashrc
|
||||||
|
block: |
|
||||||
|
pheonix() {
|
||||||
|
systemctl restart $1;journalctl -fu $1
|
||||||
|
}
|
@ -1,74 +1,12 @@
|
|||||||
---
|
---
|
||||||
- import_tasks: vim-Debian.yml
|
- name: Show (ansible_distribution)-(ansible_facts.distribution_major_version)
|
||||||
when: ansible_os_family == 'Debian'
|
debug:
|
||||||
|
msg: "{{ ansible_distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||||
|
|
||||||
- import_tasks: vim.yml
|
- name: Run tasks based on the OS type, or a default if not found.
|
||||||
when: ansible_os_family != 'Debian'
|
include_tasks: "{{ item }}"
|
||||||
|
with_first_found:
|
||||||
- name: Copy bash aliases
|
- "{{ ansible_distribution }}-{{ ansible_facts.distribution_major_version }}.yml"
|
||||||
ansible.builtin.copy:
|
- "{{ ansible_distribution }}.yml"
|
||||||
src: bash_aliases
|
- "{{ ansible_os_family }}.yml"
|
||||||
dest: "{{ item }}/.bash_aliases"
|
- "default.yml"
|
||||||
loop:
|
|
||||||
- /etc/skel
|
|
||||||
- /root
|
|
||||||
|
|
||||||
- name: Ensure Arch Linux sources bash_aliases
|
|
||||||
lineinfile:
|
|
||||||
path: /root/.bashrc
|
|
||||||
line: '[ -f ~/.bash_aliases ] && source ~/.bash_aliases'
|
|
||||||
create: yes
|
|
||||||
when: ansible_os_family == 'Archlinux'
|
|
||||||
|
|
||||||
- name: Copy shell configuration
|
|
||||||
ansible.builtin.copy:
|
|
||||||
src: inputrc
|
|
||||||
dest: "{{ item }}/.inputrc"
|
|
||||||
loop:
|
|
||||||
- /etc/skel
|
|
||||||
- /root
|
|
||||||
|
|
||||||
- name: Add root bashrc shell history configuration
|
|
||||||
lineinfile:
|
|
||||||
path: /root/.bashrc
|
|
||||||
regexp: '^(export )?HISTCONTROL='
|
|
||||||
line: 'HISTCONTROL=ignoreboth'
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Add root bashrc and vim configuration.
|
|
||||||
lineinfile:
|
|
||||||
path: /root/.bashrc
|
|
||||||
regexp: "{{ item.regexp }}"
|
|
||||||
line: "{{ item.line }}"
|
|
||||||
state: present
|
|
||||||
with_items:
|
|
||||||
- regexp: '^(export )?VISUAL='
|
|
||||||
line: 'export VISUAL=vim.basic'
|
|
||||||
- regexp: '^(export )?EDITOR='
|
|
||||||
line: 'export EDITOR=vim.basic'
|
|
||||||
- regexp: '^(export )?SUDO_EDITOR='
|
|
||||||
line: 'export SUDO_EDITOR=vim.basic'
|
|
||||||
when: ansible_os_family == 'Debian'
|
|
||||||
|
|
||||||
- name: Add root bashrc and vim configuration for RedHat
|
|
||||||
lineinfile:
|
|
||||||
path: /root/.bashrc
|
|
||||||
regexp: "{{ item.regexp }}"
|
|
||||||
line: "{{ item.line }}"
|
|
||||||
state: present
|
|
||||||
with_items:
|
|
||||||
- regexp: '^(export )?VISUAL='
|
|
||||||
line: 'export VISUAL=vim'
|
|
||||||
- regexp: '^(export )?EDITOR='
|
|
||||||
line: 'export EDITOR=vim'
|
|
||||||
- regexp: '^(export )?SUDO_EDITOR='
|
|
||||||
line: 'export SUDO_EDITOR=vim'
|
|
||||||
when: ansible_os_family != 'Debian'
|
|
||||||
|
|
||||||
- name: Add functional alias to restart a service and show the log
|
|
||||||
blockinfile:
|
|
||||||
path: /root/.bashrc
|
|
||||||
block: |
|
|
||||||
pheonix() {
|
|
||||||
systemctl restart $1;journalctl -fu $1
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user