diff --git a/.gitignore b/.gitignore index a8b42eb6eed1d00740f6dd332a49c2add9cf6c40..21516bb938021e27a081308f2c071387b2d95fd0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.retry +inventory diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..009213e5439a9ca0de1f8fb48ec6c7f769fef770 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +EDITOR = geany + +clean: + # Remove files not in source control + find . -type f -name "*.retry" -delete + find . -type f -name "*.orig" -delete + +open_all: + ${EDITOR} .gitignore inventory Makefile host_info.yml README.md whoami.yml + +inventory_generation: + cp inventory.sample inventory && ${EDITOR} inventory diff --git a/README.md b/README.md index 3320145bf85469ad81f5f9768ae9d2a7d2430e86..fff4416db28741d1896924c7d1887ad9ddc55dec 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,28 @@ forga Ansible base playbook =========================== -Setup a basic [Debian](https://www.debian.org) (and Ubuntu) config, suitable for server and workstation + +💡 Idea +------- + +Get info and set basic config for _Debian_ and _Ubuntu_ distrib. + +Suitable for server and workstation. + + +✨ Features +----------- + +| playbook | return | +|-----------------------------------|---------------------------------------------------| +| [`host_info.yml`](host_info.yml) | distribution full name & version | +| [`whoami.yml`](whoami.yml) | `ansible_user` & `become_user` (`sudo` method) | + + +🚀 Quickstart +------------- + +1. Setup your `inventory` file from [`inventory.sample`](inventory.sample) : + - `make inventory_generation` +1. Run `host_info` playbook to `<group_foo>` & `<group_bar>` : + - `ansible-playbook host_info.yml -i inventory -e host_list=<group_foo>:<group_bar>` diff --git a/host_info.yml b/host_info.yml new file mode 100644 index 0000000000000000000000000000000000000000..e46c17748dc62bbae0af7669e46c81ce39b8629a --- /dev/null +++ b/host_info.yml @@ -0,0 +1,8 @@ +--- +- hosts: "{{ host_list }}" + remote_user: "{{ my_user }}" + + tasks: + - name: Host Info + debug: + msg: "{{ ansible_hostname }} ({{ ansible_distribution }} {{ ansible_distribution_release }} v{{ ansible_distribution_version }})" diff --git a/inventory.sample b/inventory.sample new file mode 100644 index 0000000000000000000000000000000000000000..267a16a11992fff375124c0ba9132544e259450f --- /dev/null +++ b/inventory.sample @@ -0,0 +1,16 @@ +[physical] +192.168.1.1 +192.168.1.11 + +[virtual] +192.168.1.2 +192.168.1.22 + +[server] +192.168.1.1 +192.168.1.2 + +[workstation] +localhost +192.168.1.11 +192.168.1.22 diff --git a/whoami.yml b/whoami.yml new file mode 100644 index 0000000000000000000000000000000000000000..7be52270dd2a48de1c14dec58c7e03ad362dcced --- /dev/null +++ b/whoami.yml @@ -0,0 +1,28 @@ +--- +- hosts: "{{ host_list }}" + become_method: su + remote_user: root + become_user: "{{ my_user }}" + + tasks: + - name: Who is «remote_user» + become: no + ansible.builtin.script: + cmd: /usr/bin/whoami + register: who_is_remote_user + changed_when: 0 + + - name: Who is «become_user» + become: yes + ansible.builtin.script: + cmd: /usr/bin/whoami + register: who_is_become_user + changed_when: 0 + + - name: Who is «remote_user»? + ansible.builtin.debug: + msg: "I am «{{ who_is_remote_user.stdout_lines }}»" + + - name: Who is «become_user»? + ansible.builtin.debug: + msg: "I am {{ who_is_become_user.stdout_lines | flatten | first }}"