Skip to content

adusachev/Ansible-server-setup

Repository files navigation

Server configuration

Create non-root user with sudo priveleges

ssh root@<SERVER_IP>

(on server) Create new user admin:

adduser admin
# create password for "admin" user

(on server) Grant sudo priveleges to admin:

adduser admin sudo

(on host) Add ssh keys:

ssh-copy-id -i $HOME/.ssh/<SSH_KEY_NAME>.pub admin@<SERVER_IP>

Install Ansible

(on host)

python3 -m venv venv
source venv/bin/activate
pip install ansible

Configure Ansible

(on host)

cp ./hosts.example ./hosts
vim hosts
# add your <SERVER_IP> and <SSH_KEY_NAME>
vim sudo_pass
# write sudo password for "admin" user here
chmod go-rw sudo_pass

check that ansible is ready

ansible ubuntu -m ping

Run playbooks

(on host)

Install packages, disable root login, restart sshd:

ansible-playbook basic_setup_playbook.yaml --become-password-file sudo_pass

Install docker:

ansible-playbook docker_playbook.yaml --become-password-file sudo_pass

Install zsh, ohmyzsh, plugins:

ansible-playbook zsh_playbook.yaml --become-password-file sudo_pass

Additional features

Configure ssh alias

(on host)

cat << EOF >> $HOME/.ssh/config 
Host <SERVER_ALIAS>
Hostname <SERVER_IP>
User admin
Port 22
IdentityFile ~/.ssh/<SSH_KEY_NAME>
ServerAliveInterval 20
TCPKeepAlive no
EOF

connect to server with alias:

ssh <SERVER_ALIAS>

About

Ansible playbooks for quick VPS setup

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published