forked from cerc-io/testnet-ops
.. | ||
.gitignore | ||
README.md | ||
setup-user.yml | ||
user-vars.example.yml |
user-setup
Prerequisites
-
Setup Ansible: follow the installation guide to setup ansible on your machine.
-
Setup a remote machine with passwordless SSH login for the root user
-
Install
passlib
used for handling encrypted passwords when setting up a userpip install passlib
Setup a user
Execute the following commands in the user-setup
directory
-
Create a new
hosts.ini
file:cp ../hosts.example.ini hosts.ini
-
Edit the
hosts.ini
file:[deployment_host] <host_name> ansible_host=<target_ip> ansible_user=<ssh_user> ansible_ssh_common_args='-o ForwardAgent=yes'
- Replace
<host_name>
with the desiredhostname
of the remote machine - Replace
<target_ip>
with the IP address or hostname of the target machine - Replace
<ssh_user>
withroot
- Replace
-
Verify that you are able to connect to the host using the following command:
ansible all -m ping -i hosts.ini # Expected output: # <host_name> | SUCCESS => { # "ansible_facts": { # "discovered_interpreter_python": "/usr/bin/python3.10" # }, # "changed": false, # "ping": "pong" # }
-
Setup
user-vars.yml
using the example filecp user-vars.example.yml user-vars.yml
-
Edit the
user-vars.yml
file:# name of the user you want to setup on the target host username: "" # password of the user you want to setup on the target host password: "" # path to the ssh key on your machine, eg: "/home/user/.ssh/id_rsa.pub" path_to_ssh_key: ""
-
Execute the
setup-user.yml
Ansible playbook to create a user with passwordless sudo permissions:LANG=en_US.utf8 ansible-playbook setup-user.yml -i hosts.ini