From e6fad5b669df48cdefe62283bd359dcd1c134315 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Wed, 20 Aug 2025 06:14:47 -0400 Subject: [PATCH 1/8] added new task and optimized playbook --- part01-create-user/create-user.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/part01-create-user/create-user.yml b/part01-create-user/create-user.yml index 5e5691c..bb227a9 100644 --- a/part01-create-user/create-user.yml +++ b/part01-create-user/create-user.yml @@ -1,6 +1,7 @@ --- - hosts: all become: true + gather_facts: False vars: the_user: "devops" @@ -8,7 +9,7 @@ - name: create-user user: name: "{{ the_user }}" - groups: root,wheel + groups: root shell: /bin/bash state: present create_home: yes @@ -20,9 +21,16 @@ ssh_key_bits: 2048 ssh_key_file: .ssh/id_rsa + - name: Copy local SSH public key to target + authorized_key: + user: "{{ the_user }}" + state: present + manage_dir: yes + key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}" + - name: set password user: name: "{{ the_user }}" password: "password" password_expire_min: 14 - password_expire_max: 60 + password_expire_max: 60 \ No newline at end of file From 7c1de8b72fd1610a888f524f903a16c701308eae Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Wed, 20 Aug 2025 06:23:59 -0400 Subject: [PATCH 2/8] rollback playbook file added --- .../ansible-learning-rollback.yml | 22 +++++++++++++++++++ part00-getting-ready/ansible.cfg | 1 + 2 files changed, 23 insertions(+) create mode 100644 part00-getting-ready/ansible-learning-rollback.yml diff --git a/part00-getting-ready/ansible-learning-rollback.yml b/part00-getting-ready/ansible-learning-rollback.yml new file mode 100644 index 0000000..65fd616 --- /dev/null +++ b/part00-getting-ready/ansible-learning-rollback.yml @@ -0,0 +1,22 @@ +--- +- name: Revert devops Account + hosts: all + become: true + gather_facts: False + tasks: + - name: Remove ssh key + authorized_key: + user: devops + key: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_rsa.pub') }}" + state: absent + + - name: Remove account + user: + name: devops + state: absent + remove: yes + + - name: Remove sudo access + file: + path: /etc/sudoers.d/devops + state: absent diff --git a/part00-getting-ready/ansible.cfg b/part00-getting-ready/ansible.cfg index 2b2829f..ca7f88a 100644 --- a/part00-getting-ready/ansible.cfg +++ b/part00-getting-ready/ansible.cfg @@ -1,6 +1,7 @@ [defaults] inventory = inventory remote_user = devops + [privilege_escalation] become = true become_user = root From 02df3de9b2514f3d310d5162323bd7dc2ddbad9a Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Wed, 20 Aug 2025 07:54:35 -0400 Subject: [PATCH 3/8] testing added --- part02-update-linux/ansible.cfg | 7 +++++ part02-update-linux/update-linux/README.md | 3 ++ .../update-linux/meta/main.yml | 6 +--- .../update-linux/tests/inventory | 3 +- .../update-linux/tests/test.yml | 30 +++++++++++++++++-- 5 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 part02-update-linux/ansible.cfg diff --git a/part02-update-linux/ansible.cfg b/part02-update-linux/ansible.cfg new file mode 100644 index 0000000..b22c534 --- /dev/null +++ b/part02-update-linux/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventory + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part02-update-linux/update-linux/README.md b/part02-update-linux/update-linux/README.md index ae2cf2d..cf50323 100644 --- a/part02-update-linux/update-linux/README.md +++ b/part02-update-linux/update-linux/README.md @@ -20,6 +20,9 @@ Including an example of how to use your role (for instance, with variables passe ansible-playbook play.yml [ --limit server-ip ] +Testing: + ansible-playbook update-linux/tests/test.yml -i update-linux/tests/inventory -u $(whoami) --ask-become-pass + ## License MIT diff --git a/part02-update-linux/update-linux/meta/main.yml b/part02-update-linux/update-linux/meta/main.yml index edfde8f..dd3a7dc 100644 --- a/part02-update-linux/update-linux/meta/main.yml +++ b/part02-update-linux/update-linux/meta/main.yml @@ -16,8 +16,4 @@ galaxy_info: - dnf - yum -dependencies: - - apt - - apt-get - - dnf - - yum +dependencies: [] \ No newline at end of file diff --git a/part02-update-linux/update-linux/tests/inventory b/part02-update-linux/update-linux/tests/inventory index 878877b..05614f6 100644 --- a/part02-update-linux/update-linux/tests/inventory +++ b/part02-update-linux/update-linux/tests/inventory @@ -1,2 +1 @@ -localhost - +localhost ansible_connection=local \ No newline at end of file diff --git a/part02-update-linux/update-linux/tests/test.yml b/part02-update-linux/update-linux/tests/test.yml index 28fb777..d0fdaef 100644 --- a/part02-update-linux/update-linux/tests/test.yml +++ b/part02-update-linux/update-linux/tests/test.yml @@ -1,5 +1,31 @@ --- - hosts: localhost + become: true remote_user: root - roles: - - update-linux + gather_facts: true + + tasks: + - name: Mock update for RedHat Family - yum + debug: + msg: "Would update all packages on RedHat using yum" + when: + - ansible_os_family == 'RedHat' + - ansible_pkg_mgr == 'yum' + + - name: Mock update for RedHat Family - dnf + debug: + msg: "Would update all packages on RedHat using dnf" + when: + - ansible_os_family == 'RedHat' + - ansible_pkg_mgr == 'dnf' + + - name: Mock update for Debian Family + debug: + msg: "Would update all packages on Debian using apt" + when: + - ansible_os_family == 'Debian' + + handlers: + - name: reboot_machine + debug: + msg: "Handler would reboot machine if needed" From 6958b2f6b4fa4f27088d22910ff539e4601a2fb8 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Thu, 21 Aug 2025 06:28:03 -0400 Subject: [PATCH 4/8] made script path dynamic --- part08-create-cronjob/ansible-learning.yml | 5 ++++- part08-create-cronjob/ansible.cfg | 7 +++++++ part08-create-cronjob/create-cronjob/tasks/configure.yml | 9 +++++++-- part08-create-cronjob/create-cronjob/tasks/main.yml | 2 +- part08-create-cronjob/create-cronjob/vars/main.yml | 2 -- 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 part08-create-cronjob/ansible.cfg delete mode 100644 part08-create-cronjob/create-cronjob/vars/main.yml diff --git a/part08-create-cronjob/ansible-learning.yml b/part08-create-cronjob/ansible-learning.yml index 9ed1aab..84ab377 100644 --- a/part08-create-cronjob/ansible-learning.yml +++ b/part08-create-cronjob/ansible-learning.yml @@ -2,6 +2,9 @@ - hosts: Servers gather_facts: no become: yes + vars: + job_path: "/usr/local/bin/check-memory.sh" + log_path: "/var/log/check-memory.log" roles: - - create-cronjob + - create-cronjob \ No newline at end of file diff --git a/part08-create-cronjob/ansible.cfg b/part08-create-cronjob/ansible.cfg new file mode 100644 index 0000000..b372660 --- /dev/null +++ b/part08-create-cronjob/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventories + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part08-create-cronjob/create-cronjob/tasks/configure.yml b/part08-create-cronjob/create-cronjob/tasks/configure.yml index a869f82..60fa607 100644 --- a/part08-create-cronjob/create-cronjob/tasks/configure.yml +++ b/part08-create-cronjob/create-cronjob/tasks/configure.yml @@ -1,3 +1,9 @@ +- name: Copy memory check script to remote host + copy: + src: files/check-memory.sh + dest: "{{ job_path }}" + mode: '0755' + - name: Install cronjob cron: name: Check host memory @@ -7,5 +13,4 @@ month: "*" weekday: "*" job: "{{ job_path }} >> {{ log_path }} 2>&1" - user: root - + user: root \ No newline at end of file diff --git a/part08-create-cronjob/create-cronjob/tasks/main.yml b/part08-create-cronjob/create-cronjob/tasks/main.yml index 29a5e30..61fd929 100644 --- a/part08-create-cronjob/create-cronjob/tasks/main.yml +++ b/part08-create-cronjob/create-cronjob/tasks/main.yml @@ -1 +1 @@ -- include: configure.yml +- include_tasks: configure.yml \ No newline at end of file diff --git a/part08-create-cronjob/create-cronjob/vars/main.yml b/part08-create-cronjob/create-cronjob/vars/main.yml deleted file mode 100644 index 235bf0d..0000000 --- a/part08-create-cronjob/create-cronjob/vars/main.yml +++ /dev/null @@ -1,2 +0,0 @@ -log_path: "/home/rojin/Desktop/cron.log" -job_path: "/home/rojin/Desktop/check-memory.sh" From aad9195e3c02a566ef6620f2c2249f5054a3f5a0 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Tue, 2 Sep 2025 11:08:06 -0400 Subject: [PATCH 5/8] fixing wrong modules, added cfg file --- part11-redis-install/ansible.cfg | 7 +++++++ part11-redis-install/redis-install/tasks/main.yml | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 part11-redis-install/ansible.cfg diff --git a/part11-redis-install/ansible.cfg b/part11-redis-install/ansible.cfg new file mode 100644 index 0000000..b372660 --- /dev/null +++ b/part11-redis-install/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventories + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part11-redis-install/redis-install/tasks/main.yml b/part11-redis-install/redis-install/tasks/main.yml index 8407849..35a1f83 100644 --- a/part11-redis-install/redis-install/tasks/main.yml +++ b/part11-redis-install/redis-install/tasks/main.yml @@ -1,3 +1,3 @@ -- include: apt_update.yml -- include: install.yml -- include: configure.yml +- include_tasks: apt_update.yml +- include_tasks: install.yml +- include_tasks: configure.yml \ No newline at end of file From 3bd2106d30fab219fb7a4003b39d2c31094042d1 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Tue, 2 Sep 2025 11:12:08 -0400 Subject: [PATCH 6/8] fixing wrong modules, added cfg file --- part12-rabbitmq-install/ansible.cfg | 7 +++++++ part12-rabbitmq-install/rabbitmq-install/tasks/main.yml | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 part12-rabbitmq-install/ansible.cfg diff --git a/part12-rabbitmq-install/ansible.cfg b/part12-rabbitmq-install/ansible.cfg new file mode 100644 index 0000000..b372660 --- /dev/null +++ b/part12-rabbitmq-install/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventories + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part12-rabbitmq-install/rabbitmq-install/tasks/main.yml b/part12-rabbitmq-install/rabbitmq-install/tasks/main.yml index 8407849..35a1f83 100644 --- a/part12-rabbitmq-install/rabbitmq-install/tasks/main.yml +++ b/part12-rabbitmq-install/rabbitmq-install/tasks/main.yml @@ -1,3 +1,3 @@ -- include: apt_update.yml -- include: install.yml -- include: configure.yml +- include_tasks: apt_update.yml +- include_tasks: install.yml +- include_tasks: configure.yml \ No newline at end of file From fcc35b9dcca1c0845017d28d72593a2f0def98a6 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Tue, 2 Sep 2025 11:15:48 -0400 Subject: [PATCH 7/8] fixing wrong modules, added cfg file --- part13-zabbix-agent-install/ansible.cfg | 7 +++++++ .../zabbix-agent-install/tasks/main.yml | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 part13-zabbix-agent-install/ansible.cfg diff --git a/part13-zabbix-agent-install/ansible.cfg b/part13-zabbix-agent-install/ansible.cfg new file mode 100644 index 0000000..b372660 --- /dev/null +++ b/part13-zabbix-agent-install/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventories + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part13-zabbix-agent-install/zabbix-agent-install/tasks/main.yml b/part13-zabbix-agent-install/zabbix-agent-install/tasks/main.yml index fdb17cf..bca1e74 100644 --- a/part13-zabbix-agent-install/zabbix-agent-install/tasks/main.yml +++ b/part13-zabbix-agent-install/zabbix-agent-install/tasks/main.yml @@ -1,3 +1,3 @@ --- -- include: install.yml -- include: configure.yml +- include_tasks: install.yml +- include_tasks: configure.yml From 726f93ffb2dfee9b418c589be3d214e4aed7cf31 Mon Sep 17 00:00:00 2001 From: mohammad-ahmadi-r Date: Tue, 2 Sep 2025 11:29:16 -0400 Subject: [PATCH 8/8] refactore files and main.yml --- part14-tomcat-install/ansible.cfg | 7 +++++++ part14-tomcat-install/inventories/hosts | 2 ++ part14-tomcat-install/main.yml | 10 ++++++++++ part14-tomcat-install/vars-main.yml | 2 -- 4 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 part14-tomcat-install/ansible.cfg create mode 100644 part14-tomcat-install/inventories/hosts create mode 100644 part14-tomcat-install/main.yml delete mode 100644 part14-tomcat-install/vars-main.yml diff --git a/part14-tomcat-install/ansible.cfg b/part14-tomcat-install/ansible.cfg new file mode 100644 index 0000000..b372660 --- /dev/null +++ b/part14-tomcat-install/ansible.cfg @@ -0,0 +1,7 @@ +[defaults] +inventory = inventories + +[privilage_esclation] +become=True +become_method=sudo +become_user=root \ No newline at end of file diff --git a/part14-tomcat-install/inventories/hosts b/part14-tomcat-install/inventories/hosts new file mode 100644 index 0000000..0e0c999 --- /dev/null +++ b/part14-tomcat-install/inventories/hosts @@ -0,0 +1,2 @@ +[Servers] +test ansible_host=127.0.0.1 \ No newline at end of file diff --git a/part14-tomcat-install/main.yml b/part14-tomcat-install/main.yml new file mode 100644 index 0000000..5c5db68 --- /dev/null +++ b/part14-tomcat-install/main.yml @@ -0,0 +1,10 @@ +--- +- hosts: Servers + gather_facts: no + become: yes + vars: + tomcat_url: "https://downloads.apache.org/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz" + tomcat_path: "/opt/apache-tomcat-9.0.50" + + tasks: + - include_tasks: tomcat-playbook.yml \ No newline at end of file diff --git a/part14-tomcat-install/vars-main.yml b/part14-tomcat-install/vars-main.yml deleted file mode 100644 index df6d317..0000000 --- a/part14-tomcat-install/vars-main.yml +++ /dev/null @@ -1,2 +0,0 @@ -tomcat_url: "https://downloads.apache.org/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.tar.gz" -tomcat_path: "/opt/apache-tomcat-9.0.50"