From 54442c73d356ae61bc0ddc9cb02003d7d0585792 Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Tue, 21 Feb 2023 11:53:50 +0100 Subject: [PATCH] solution setup --- setup.yml | 46 ++------------------------ tco.setup/README.md | 38 ++++++++++++++++++++++ tco.setup/defaults/main.yml | 2 ++ sudoers => tco.setup/files/sudoers | 0 tco.setup/handlers/main.yml | 2 ++ tco.setup/meta/main.yml | 52 ++++++++++++++++++++++++++++++ tco.setup/tasks/main.yml | 42 ++++++++++++++++++++++++ tco.setup/tests/inventory | 2 ++ tco.setup/tests/test.yml | 5 +++ tco.setup/vars/main.yml | 3 ++ 10 files changed, 149 insertions(+), 43 deletions(-) create mode 100644 tco.setup/README.md create mode 100644 tco.setup/defaults/main.yml rename sudoers => tco.setup/files/sudoers (100%) create mode 100644 tco.setup/handlers/main.yml create mode 100644 tco.setup/meta/main.yml create mode 100644 tco.setup/tasks/main.yml create mode 100644 tco.setup/tests/inventory create mode 100644 tco.setup/tests/test.yml create mode 100644 tco.setup/vars/main.yml diff --git a/setup.yml b/setup.yml index ea3e379..13f80b8 100644 --- a/setup.yml +++ b/setup.yml @@ -1,46 +1,6 @@ + --- - name: setup target to be managed by ansible hosts: cibles - vars: - playbook_version: 1.0 - tasks: - - name: warn people - ansible.builtin.lineinfile: - path: /etc/motd - create: yes - line: "Host is managed by ansible, manual interaction not recommended" - state: present - - - name: history - ansible.builtin.lineinfile: - path: /etc/history - line: "{{ '%Y-%m-%d' | strftime }} - {{ ansible_play_name }} - {{ playbook_version }}" - state: present - create: true - - - name: generate ssh keys - openssh_keypair: - path: "~/.ssh/id_rsa" - size: 2048 - delegate_to: localhost - become: false - - - name: create account - ansible.builtin.user: - name: ansible - password: "{{ '123Soleil%' | password_hash('sha512',65534|random(seed=inventory_hostname) | string) }}" - create_home: yes - home: /home/ansible - - - name: configure sudo - ansible.builtin.copy: - src: sudoers - dest: /etc/sudoers.d/ansible - - - name: deploy ssh key - ansible.posix.authorized_key: - user: ansible - key: "{{ item }}" - loop: - - "{{ lookup( 'file', '~/.ssh/id_rsa.pub' ) }}" - - "https://infra.opendoor.fr/id_rsa.pub" \ No newline at end of file + roles: + - tco.setup \ No newline at end of file diff --git a/tco.setup/README.md b/tco.setup/README.md new file mode 100644 index 0000000..b0677a1 --- /dev/null +++ b/tco.setup/README.md @@ -0,0 +1,38 @@ +Role Name +========= + +Configure host for ansible management + +Requirements +------------ + +None + +Role Variables +-------------- + +playbook_version: 1.0 + +Dependencies +------------ + +None + +Example Playbook +---------------- + +Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too: + + - hosts: servers + roles: + - { tco.setup } + +License +------- + +BSD + +Author Information +------------------ + +Thomas C diff --git a/tco.setup/defaults/main.yml b/tco.setup/defaults/main.yml new file mode 100644 index 0000000..118517a --- /dev/null +++ b/tco.setup/defaults/main.yml @@ -0,0 +1,2 @@ +--- +# defaults file for tco.setup diff --git a/sudoers b/tco.setup/files/sudoers similarity index 100% rename from sudoers rename to tco.setup/files/sudoers diff --git a/tco.setup/handlers/main.yml b/tco.setup/handlers/main.yml new file mode 100644 index 0000000..c39e2a3 --- /dev/null +++ b/tco.setup/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for tco.setup diff --git a/tco.setup/meta/main.yml b/tco.setup/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/tco.setup/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: your name + description: your role description + company: your company (optional) + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/tco.setup/tasks/main.yml b/tco.setup/tasks/main.yml new file mode 100644 index 0000000..bc081c3 --- /dev/null +++ b/tco.setup/tasks/main.yml @@ -0,0 +1,42 @@ +--- +# tasks file for tco.setup + - name: warn people + ansible.builtin.lineinfile: + path: /etc/motd + create: yes + line: "Host is managed by ansible, manual interaction not recommended" + state: present + + - name: history + ansible.builtin.lineinfile: + path: /etc/history + line: "{{ '%Y-%m-%d' | strftime }} - {{ ansible_play_name }} - {{ playbook_version }}" + state: present + create: true + + - name: generate ssh keys + openssh_keypair: + path: "~/.ssh/id_rsa" + size: 2048 + delegate_to: localhost + become: false + + - name: create account + ansible.builtin.user: + name: ansible + password: "{{ '123Soleil%' | password_hash('sha512',65534|random(seed=inventory_hostname) | string) }}" + create_home: yes + home: /home/ansible + + - name: configure sudo + ansible.builtin.copy: + src: sudoers + dest: /etc/sudoers.d/ansible + + - name: deploy ssh key + ansible.posix.authorized_key: + user: ansible + key: "{{ item }}" + loop: + - "{{ lookup( 'file', '~/.ssh/id_rsa.pub' ) }}" + - "https://infra.opendoor.fr/id_rsa.pub" \ No newline at end of file diff --git a/tco.setup/tests/inventory b/tco.setup/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tco.setup/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tco.setup/tests/test.yml b/tco.setup/tests/test.yml new file mode 100644 index 0000000..c002497 --- /dev/null +++ b/tco.setup/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - tco.setup diff --git a/tco.setup/vars/main.yml b/tco.setup/vars/main.yml new file mode 100644 index 0000000..489bde5 --- /dev/null +++ b/tco.setup/vars/main.yml @@ -0,0 +1,3 @@ +--- +# vars file for tco.setup +playbook_version: 1.0