--- - name: setup target to be managed by ansible hosts: cibles tasks: - name: warn people lineinfile: path: /etc/motd create: yes line: "Host is managed by ansible, manual interaction not recommended" state: present - name: history lineinfile: path: /etc/history line: "{{ '%Y-%m-%d' | strftime }} - {{ ansible_play_name }}" state: present create: true - name: generate ssh keys openssh_keypair: path: "~/.ssh/id_rsa" size: 2048 delegate_to: localhost become: false - name: create account user: name: "{{ ansible_user }}" password: "{{ '123Soleil%' | password_hash('sha512',65534|random(seed=inventory_hostname) | string) }}" create_home: yes home: "/home/{{ ansible_user }}" - name: configure sudo template: src: sudoers_ansible dest: /etc/sudoers.d/ansible validate: "/usr/sbin/visudo -cf %s" - name: deploy ssh key authorized_key: user: "{{ ansible_user }}" key: "{{ item }}" loop: - "{{ lookup( 'file', '~/.ssh/id_rsa.pub' ) }}" - "https://infra.opendoor.fr/id_rsa.pub"