Compare commits

...

3 Commits

Author SHA1 Message Date
root 11283c7760 Add user management 2025-07-07 16:31:47 +07:00
root 91569d6082 Add user management 2025-07-07 16:31:47 +07:00
root f80e56add0 add user-management 2025-07-07 16:31:47 +07:00
17 changed files with 422 additions and 0 deletions

152
.bash_history Normal file
View File

@ -0,0 +1,152 @@
sudo apt update && sudo apt upgrade -y
apt install ansible -y
ansible --version
ip a
ssh-keygen -t rsa -b 4096
ssh-copy-id root@142.93.63.131
ssh root@142.93.63.131
ssh-copy-id root@142.93.63.131
nano /etc/ansible/host
ansible status
systemctl status ansible
apt install ansible -y
systemctl status ansible
ls
cd /
ls
systemctl status ansible
cd /etc/
ls
cd ..
ansible --version
nano /etc/ansible/host
mkdir /etc/ansible
ls
ls
cd ansible/
nano host
ansible all -m ping
cd /
ansible all -m ping
cat /etc/ansible/hosts
cd /etc/ansible/
cat host
sudo mv /etc/ansible/host /etc/ansible/hosts
ls
ansible all -m ping
ls
cd /
ls
cd etc/
ls
cd ansible/
ls
nano hosts
cd /
ssh-copy-id adel@142.93.63.131
ssh-copy-id adel@67.205.166.16
ssh-copy-id adelya@67.205.166.16
ansible all -m ping
cd ansible/
cd /etc/ansible/
ls
nano hosts
nano playbook.yml
ansible-playbook playbook.yml -1 142.93.63.131 -u root -k
ansible-playbook playbook.yml -I 142.93.63.131 -u root -k
ansible-playbook playbook.yml -i 142.93.63.131 -u root -k
nano playbook.yml
ansible-playbook playbook.yml -i 142.93.63.131, -u root -k
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
cd .
cd /
cd etc/
ls
nano sudoers
cd /
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
cd ~
ls
mv playbook.yml /
ls
cd /
ls
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
file -i playbook.yml
iconv -f us-ascii -t utf-8 playbook.yml -o playbook.yml-fixed.yml
mv playbook.yml-fixed.yml playbook.yml
ansible-playbook playbook.yml --syntax-check
ls
file -i playbook.yml
which iconv
iconv --version
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
ansible-playbook playbook.yml --syntax-check
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
ansible-playbook playbook.yml -i 142.93.63.131, -u root -k
sudo apt update
sudo apt install sshpass -y
ansible-playbook playbook.yml -i 142.93.63.131, -u root -k
ansible-playbook playbook.yml -i 142.93.63.131, -u user -k
ansible-playbook playbook.yml -i 142.93.63.131, -u adel -k
nano playbook.yml
ansible-playbook playbook.yml --syntax-check
ansible-playbook playbook.yml -i 142.93.63.131, -u adel -k
ansible-playbook playbook.yml -i 67.205.166.16, -u adelya -k
ansible-inventory --list
sudo ufw status
ufw status
apt install ufw
ufw status
ufw enable
ufw status
ufw allow ssh
ufw status
ufw status ssh
ufw status
ufw allow OpenSSH
ufw allow openssh
ufw status OpenSSH
ls
cd /
ls
which ansible
cd ~
cd ~/ansible-digitalocean
mkdir -p ansible-digitalocean/{inventory,host_vars,group_vars}
ls
cd ansible-digitalocean/
touch ansible.cfg do_setup.yml README.md inventory/{digitalocean.yml,static.ini}
ls
tree
apt install tree
tree

99
.bashrc Normal file
View File

@ -0,0 +1,99 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi

1
.lesshst Normal file
View File

@ -0,0 +1 @@
.less-history-file:

0
.motd_shown Normal file
View File

9
.profile Normal file
View File

@ -0,0 +1,9 @@
# ~/.profile: executed by Bourne-compatible login shells.
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
fi
mesg n 2> /dev/null || true

49
.ssh/id_rsa Normal file
View File

@ -0,0 +1,49 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAACFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAgEA5APRr2eHVMcjdTFc0rKcdAb87OpMPRJDR8Fi43BzAf8vPFM1rdWX
kC04p5eiM4R9lVi1u21zM+3pnlOGQngqgJoztYiyQho15wAv4amlqafsLPjWUg2seBomAV
zHXDszm6rwbai9EBs7n/P9ib3pPAnAFS0sah3WpfDrmIIK5WMdB5CZngUvVOdwEQcsf4jc
w2hD1GuWR43bCHbOOVtTbqHwn3MX8ic9ehhP/pIJZfpH9kSMPi37nw+eZcrANvt0/+hnOH
/U1ahZPVCkFRXB9nHZtnOARLsfRv/o47wNHP5cpyAke/ezHepv0qPKnnGJZrs7lWyHvZYY
WzZMsVZx1q2eb7xBAPDH+JquQvrrcMNJBXyUxSQmDEC0bJxWrTOpjnsEyyCH8MQrZpykEr
W0qaJ5H/t2I6TIpNec6hYEo/b+wQGzU+pxeQceaWe/4Ml8dbSUyoSW4NW1j9jIzIqSI5H2
6f7GL0BzPOXHoLg8aDMCWa7qOX78Is1IrktAr/8Qyy1fO4xGbWK212rh0OtdDTBUBalXZ1
grY8DfiZHPJpnAhsQaJuLoFShmsOcJQNNT5GaTsK71FTcFB7pz+IGLsoTOFfrSkBRBSLqi
MFvVaukOHF4B245M6IvuBYi3c8hoLIRYR+itFdS43eERL4HXNzGWmPjzGO7MBLTuvXz26V
kAAAdIuAKEqLgChKgAAAAHc3NoLXJzYQAAAgEA5APRr2eHVMcjdTFc0rKcdAb87OpMPRJD
R8Fi43BzAf8vPFM1rdWXkC04p5eiM4R9lVi1u21zM+3pnlOGQngqgJoztYiyQho15wAv4a
mlqafsLPjWUg2seBomAVzHXDszm6rwbai9EBs7n/P9ib3pPAnAFS0sah3WpfDrmIIK5WMd
B5CZngUvVOdwEQcsf4jcw2hD1GuWR43bCHbOOVtTbqHwn3MX8ic9ehhP/pIJZfpH9kSMPi
37nw+eZcrANvt0/+hnOH/U1ahZPVCkFRXB9nHZtnOARLsfRv/o47wNHP5cpyAke/ezHepv
0qPKnnGJZrs7lWyHvZYYWzZMsVZx1q2eb7xBAPDH+JquQvrrcMNJBXyUxSQmDEC0bJxWrT
OpjnsEyyCH8MQrZpykErW0qaJ5H/t2I6TIpNec6hYEo/b+wQGzU+pxeQceaWe/4Ml8dbSU
yoSW4NW1j9jIzIqSI5H26f7GL0BzPOXHoLg8aDMCWa7qOX78Is1IrktAr/8Qyy1fO4xGbW
K212rh0OtdDTBUBalXZ1grY8DfiZHPJpnAhsQaJuLoFShmsOcJQNNT5GaTsK71FTcFB7pz
+IGLsoTOFfrSkBRBSLqiMFvVaukOHF4B245M6IvuBYi3c8hoLIRYR+itFdS43eERL4HXNz
GWmPjzGO7MBLTuvXz26VkAAAADAQABAAACAB6jrr0Rvds0CT05vV3ot2JWAA277DO2rQjK
4UVrumCV0FycV9W8ommy0e6fTyH6F0AG1CDT88uSGDb4xU1QRXHThshJjp6YVA7u9QAvYj
36fR+L7ozHHppi9SFwvK9Vmzk7TqSFrKYp6qizSioEtX8mVkPiNpop2UqiJZ5wNxOc7m0y
Tpov2yzfDq2TF7UpiHTPoXG9ZUvHMZwhDtQhRARVSXa7qgeVo0qxUqqEKDQmXh4nFutSFY
JJwICwLoUU5CNxMNGkR87QGPHG0M2uh0pdASLlwWI6/Nh3Ee3sOpzfR0cD6DMqVUzbUFxv
Ow5wdkSyOy74jwL4VNyI3uRjl9c+tG52ShZHQr8kyqvhYGrxywsqPG+QIKvWqEssPPhZQO
kKgUCK5I2V7SFTcgvxN4HM41Z0uMSKESJiHsa28ioqgBvt4pWX+SfauQ4k3qyKhWW7gIE1
bcsyTIR0YD3XtVEvlVe3MuuMAvNk1gz71g5VmcU+U3nuE8G9kCii2JtCy2hcjWmblEHT0b
/BXISxFjSL1e6EcWka+FL14HvW98u1LQIN5KqlCzqclqjJnm5KkhZ0qlySLYQM1eBR5si+
VhayWGAgwIFEZ+h95hu1g36YjZYFV50C3bWEq9PUBrRFOWtLwCCNXPJoraY9clmzQ/ZxB6
8HbSOW7oJjqEVZeQ4TAAABAQDZQXLAZzjBcaCuIqhnFOc0zrm54MKKJnvA5e8Ivq6ZKDJr
H2EqkhT+Z8tjAq7M1o2r0HONEeHMdSNiPzS12LO9OFkC4s5z7Ak/lpZPoefQis6AYg8eIM
jW35LiABCG6mgY4w8G0F9CfbFOznDVkYrNGFoeW6lyHP5pe76tvxkwEDyxK84J3Rgy3oL6
Vdr9DtZJH3Jq9n3BketXVCXLeSczcrd7Aibc788wNkrvGggMpzTjZJDBudiu+pmacr0ZJ/
L92Qzt2cHwKsJIiRtVmxlKrNjr/S6mMLUbcCNVKN7NE7VDzM0y43joB2MojtPpnNn1t5YI
r/i+7IS1Eg0YcDB9AAABAQD54WLVJ/Zojl/hOGnq6TQJrPsJDgpm8OjGOv37NqxnSzma4g
G3kpFzK4qrV+PxVocvyGEF8tAHv3lA397gIh2FVosYyd05SJHiex1y075bWMdZN0RKD6NO
NGS01erbtIAyozys3kb+l/bxGLoj0CiVIwX52DmBSkV4HQ3MypAOGG1+s0Jlj96MDZZfNI
tB0ZO2rmv4wPspVtLycav79XRXmFsrkDKTV3fGZbEUV1v+R9M8Vp12gJ/bplN+gKcVHHod
tiJg6N99T2XwECHj2pGlFjvdqgIKo2dB9yxlX9+rbIx0gz4/UlW5HpFU3Gwlgb0KVzBvwn
dDssWS0Bf5KGDnAAABAQDpmVko9ATtGF98UXKtt1/DGd59esmqFm1+gtsHRVcdDsZDaf2v
6gkvK78lp8Tq5pYEQGlge2XJYE6uye0lb2C8cdpP60uun5zq93xUmF+doEekmVBk2nKuGk
Fd+u1tt23yFUVSpKmZngMd58BQKqmzd8lC5Mofr6GsQ/AOkOx2UkI2faHEy/D1zoxJ5Ftu
pzPwnTuNVBWwtvIncP+vabrzda1hFR+H63AN6aVHNqCmWcEdbJx8OlAb10AfbilKKp2Q90
r3OM09eoPmVDVJkIngH75YylCZDQNZXGq1H9gFgPsPDK6wY6q1hhGt5RvNEzFdGF3Kooom
LP1ud0dwZ9u/AAAADHJvb3RAQWRlbHlhYQECAwQFBg==
-----END OPENSSH PRIVATE KEY-----

1
.ssh/id_rsa.pub Normal file
View File

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDkA9GvZ4dUxyN1MVzSspx0Bvzs6kw9EkNHwWLjcHMB/y88UzWt1ZeQLTinl6IzhH2VWLW7bXMz7emeU4ZCeCqAmjO1iLJCGjXnAC/hqaWpp+ws+NZSDax4GiYBXMdcOzObqvBtqL0QGzuf8/2Jvek8CcAVLSxqHdal8OuYggrlYx0HkJmeBS9U53ARByx/iNzDaEPUa5ZHjdsIds45W1NuofCfcxfyJz16GE/+kgll+kf2RIw+LfufD55lysA2+3T/6Gc4f9TVqFk9UKQVFcH2cdm2c4BEux9G/+jjvA0c/lynICR797Md6m/So8qecYlmuzuVbIe9lhhbNkyxVnHWrZ5vvEEA8Mf4mq5C+utww0kFfJTFJCYMQLRsnFatM6mOewTLIIfwxCtmnKQStbSponkf+3YjpMik15zqFgSj9v7BAbNT6nF5Bx5pZ7/gyXx1tJTKhJbg1bWP2MjMipIjkfbp/sYvQHM85ceguDxoMwJZruo5fvwizUiuS0Cv/xDLLV87jEZtYrbXauHQ610NMFQFqVdnWCtjwN+Jkc8mmcCGxBom4ugVKGaw5wlA01PkZpOwrvUVNwUHunP4gYuyhM4V+tKQFEFIuqIwW9Vq6Q4cXgHbjkzoi+4FiLdzyGgshFhH6K0V1Ljd4REvgdc3MZaY+PMY7swEtO69fPbpWQ== root@Adelyaa

6
.ssh/known_hosts Normal file
View File

@ -0,0 +1,6 @@
|1|RBjcbB6vQlw/5taBF2Y1YG/5aUU=|9F4DU6ImB+q/d/3Kg/VH11jtWDE= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHYV+fHLM/VaRF9F3o/eqDytPWZ978d6jYfC21Rqykju
|1|fUxuXyF695aHejaVYwvqxHFYdCs=|DOE1ambGBr5H0M81CJ2leiZzoxU= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCK9Th29r8GfIBra55W9P7QxdS6JWtFXZ4+53uSvuhd2U7af3xmodgALQXXOaITnpF8DFM3ppryfvd3dQUL30CsqL9tSqECVLhuZZ7SMB3a8q0jzDxotCkeLZdjiIPVRa+R/1HO9ha3fl4MmJxaUBeTONw1YZa7vB98axNnpT9l+6K4fi5LGXdiej0F/OH/qBGaffcutWjFpIYfb0gpCS53qsHyxnkdKEI/HpHMiKN80+DJ2JZ/Id9aAgzH6KSmYxf5t9KHbq289CGR9xIOROtiSEXLXhK1piJpb5JOFjxs8nWUhN/l3s8PjGbEmOgwrtoRtvWYBdxmB68H4QI1PUzgHVk4p53vsA2eNW15NoE14NMyU77sRtAR/6KkNPFAry2MjafTeXcMnQd3oqAIDo+bvKqWmGVSLDaTJRqHreA+7vZZsn9GWp3PbWquTim8mxSCqGl1NCURLGSrG57mY4la38JyoyVaR/OiukVCTpwj2CpktoYZfd9eAicQnoQT55M=
|1|br3MuqeDLRwhnWAJfCL/7breVFs=|2t6WHeTGXGJ5L392s4TleMbReLE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHSrWLiGWbCMjVpbrXlzc1vsyM4XS5e6tm0XGQzCxmk0r+nCPOBZ4i7ZWK54e8L7AduHVbJR+skZO6FiBZmhJno=
|1|S+2FJr5EZEt7MYj6aQed9/xM/9E=|HyIA6dtj5Wl4IEvJa1GEkZ55hxE= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQWwLeAoLM+9htOiScUTz2+Brh9SOJbjMGiBBVcZYbf
|1|6HbLQOb4D2M0mwU61v7/SpDRklk=|+cRGtBPPUWyOsLq8koyi3fWniDk= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCjx3KUiKNNfHSzPp4IF7Dpfl0jSUVp2/jpvj2eJneW0GXuMM/QjGE9HYy5HcwAdD6LGMF2U0GT7++1FS6U6XvkrbIXcZIqEMALipxQpYMPh9s6L74RAceZmb7X6N5rvDYTuVpOMS1Mq/oTBPuO3spAuKNQP6DMRrtAI8NfNiv8mfa1HCTUIM/3js6btdfB+OKQHeKIDjGNRcBiLXus9Yuf2CcIVE6iUYyPnCjG28ri8rBq0T/+W2TDqt/+Jwbw5Cou60krbgwt6m9zAO4tSoMZWP2I1k2ttHTlEmM/NIpHI0OyqyAT1g1Mq9RIDi1gWkRI9eAR+LOTrpStw6Fq4I24IEzElARnRi5Kkg2qtPOp55LkTZGGMYtrBWjCZJSNDjCG6miQOgBzNsZYom/y1pvSH6RPCMbeFrz7KpVcNJTBZLoZVwO19bYPErDxHeXP4LWiGVMCKQaYJLXt/12z0eXHuLNwqnu0hHiLthcT9PvqE7oXLeaY5IwN/g5m6Tin3s=
|1|OGRJCJy9keDmiXB5SlkC6F1DzNE=|JMyuS19qx8lG7tgZ+KwOMOzx00E= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBPzfOlXgUjbxibgySDZ2Lv5iS8AyWE5oCdDEYzAbd7qdbVDEOWTRtj8zf5k2ax9w7K+h3GYndI3QmqCopKbARU=

4
.ssh/known_hosts.old Normal file
View File

@ -0,0 +1,4 @@
|1|RBjcbB6vQlw/5taBF2Y1YG/5aUU=|9F4DU6ImB+q/d/3Kg/VH11jtWDE= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHYV+fHLM/VaRF9F3o/eqDytPWZ978d6jYfC21Rqykju
|1|fUxuXyF695aHejaVYwvqxHFYdCs=|DOE1ambGBr5H0M81CJ2leiZzoxU= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCK9Th29r8GfIBra55W9P7QxdS6JWtFXZ4+53uSvuhd2U7af3xmodgALQXXOaITnpF8DFM3ppryfvd3dQUL30CsqL9tSqECVLhuZZ7SMB3a8q0jzDxotCkeLZdjiIPVRa+R/1HO9ha3fl4MmJxaUBeTONw1YZa7vB98axNnpT9l+6K4fi5LGXdiej0F/OH/qBGaffcutWjFpIYfb0gpCS53qsHyxnkdKEI/HpHMiKN80+DJ2JZ/Id9aAgzH6KSmYxf5t9KHbq289CGR9xIOROtiSEXLXhK1piJpb5JOFjxs8nWUhN/l3s8PjGbEmOgwrtoRtvWYBdxmB68H4QI1PUzgHVk4p53vsA2eNW15NoE14NMyU77sRtAR/6KkNPFAry2MjafTeXcMnQd3oqAIDo+bvKqWmGVSLDaTJRqHreA+7vZZsn9GWp3PbWquTim8mxSCqGl1NCURLGSrG57mY4la38JyoyVaR/OiukVCTpwj2CpktoYZfd9eAicQnoQT55M=
|1|br3MuqeDLRwhnWAJfCL/7breVFs=|2t6WHeTGXGJ5L392s4TleMbReLE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHSrWLiGWbCMjVpbrXlzc1vsyM4XS5e6tm0XGQzCxmk0r+nCPOBZ4i7ZWK54e8L7AduHVbJR+skZO6FiBZmhJno=
|1|S+2FJr5EZEt7MYj6aQed9/xM/9E=|HyIA6dtj5Wl4IEvJa1GEkZ55hxE= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGQWwLeAoLM+9htOiScUTz2+Brh9SOJbjMGiBBVcZYbf

View File

View File

View File

3
playbooks/inventory.ini Normal file
View File

@ -0,0 +1,3 @@
[droplets]
142.93.63.131 ansible_user=adel
67.205.166.16 ansible_user=adelya

View File

@ -0,0 +1,95 @@
---
- name: User Management Playbook
hosts: all
become: true
tasks:
- name: Remove user 'adelia'
ansible.builtin.user:
name: adelia
state: absent
remove: true
- name: Set facts from users.conf
set_fact:
my_users: "{{ my_users | default([]) + [ {
'user': params[0],
'state': params[1],
'super': (params[2] == 'super')
} ] }}"
loop: "{{ lookup('file', 'user.conf').splitlines() }}"
vars:
params: "{{ item.split(':') }}"
- name: Manage users
ansible.builtin.user:
name: "{{ item.user }}"
state: "{{ item.state }}"
loop: "{{ my_users }}"
- name: Sudo privileges for super users
ansible.builtin.lineinfile:
path: /etc/sudoers
line: "{{ item.user }} ALL=(ALL) NOPASSWD: ALL"
validate: 'visudo -cf %s'
loop: "{{ my_users }}"
when: item.super
- name: Add SSH key for user
ansible.posix.authorized_key:
user: "{{ user_name }}"
state: present
key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}"
vars:
user_name: adel
- name: Add user to sudo group
ansible.builtin.user:
name: "{{ sudo_user }}"
groups: sudo
append: true
state: present
create_home: true
vars:
sudo_user: adelia
- name: Configure password reuse policy
ansible.posix.sysctl:
name: "kernel.printk_ratelimit"
value: "10"
state: present
reload: yes
- name: Create group 'pkl'
ansible.builtin.group:
name: pkl
state: present
- name: Create user 'syifa' in group 'pkl'
ansible.builtin.user:
name: syifa
state: present
groups: pkl
append: yes
shell: /bin/bash
- name: Add 'pkl' group to sudoers
ansible.builtin.lineinfile:
path: /etc/sudoers
state: present
regexp: '^%pkl'
line: '%pkl ALL=(ALL) NOPASSWD: ALL'
validate: 'visudo -cf %s'
- name: Remove 'syifa' from group 'pkl'
ansible.builtin.user:
name: syifa
groups: pkl
state: present
append: no
- name: Remove group 'pkl'
ansible.builtin.group:
name: pkl
state: absent

3
playbooks/user.conf Normal file
View File

@ -0,0 +1,3 @@
adelia:absent:super
okta:absent:normal
syifa:present:super