From 4bf8987d053a1153969254264f9f7d22f6e643ef Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Wed, 19 Jun 2024 16:21:58 +0200 Subject: [PATCH] solution --- Readme.md | 18 ++++++++++ setup.yml | 6 ++++ tco.setup/README.md | 38 ++++++++++++++++++++ tco.setup/defaults/main.yml | 2 ++ tco.setup/files/sudoers | 1 + tco.setup/handlers/main.yml | 2 ++ tco.setup/meta/main.yml | 52 +++++++++++++++++++++++++++ tco.setup/tasks/main.yml | 70 +++++++++++++++++++++++++++++++++++++ tco.setup/tests/inventory | 2 ++ tco.setup/tests/test.yml | 5 +++ tco.setup/vars/debian.yml | 4 +++ tco.setup/vars/main.yml | 3 ++ tco.setup/vars/redhat.yml | 5 +++ 13 files changed, 208 insertions(+) create mode 100644 Readme.md create mode 100644 setup.yml create mode 100644 tco.setup/README.md create mode 100644 tco.setup/defaults/main.yml create mode 100644 tco.setup/files/sudoers 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/debian.yml create mode 100644 tco.setup/vars/main.yml create mode 100644 tco.setup/vars/redhat.yml diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..8b48bd0 --- /dev/null +++ b/Readme.md @@ -0,0 +1,18 @@ +# Rôles + +## Prérequis + +```bash +cd +git clone -b solution_setup https://infra.opendoor.fr/git/tom/sib_15_roles.git fact_setup +cd fact_setup +``` + + +modifier le role pour qu'il installe et configue vim convenablement sur les machines: + + 1. installation du paquet vim-nox sur debian, vim-enhanced sur RH + 2. récupération du vimrc présent dans le dépot https://infra.opendoor.fr/git/tom/vim_formation + 3. copier ce fichier dans /etc/vim/ sur debian, /etc sur RH + + diff --git a/setup.yml b/setup.yml new file mode 100644 index 0000000..13f80b8 --- /dev/null +++ b/setup.yml @@ -0,0 +1,6 @@ + +--- +- name: setup target to be managed by ansible + hosts: cibles + 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/tco.setup/files/sudoers b/tco.setup/files/sudoers new file mode 100644 index 0000000..01e7f8b --- /dev/null +++ b/tco.setup/files/sudoers @@ -0,0 +1 @@ +ansible ALL=NOPASSWD: ALL 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..d129ac6 --- /dev/null +++ b/tco.setup/tasks/main.yml @@ -0,0 +1,70 @@ +--- +# tasks file for tco.setup + - name: import os var file + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + tags: always + + - 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" + + tags: vim + ansible.builtin.package: + name: "{{ vim_package }}" + state: present + + - name: install prereq + tags: vim + package: + name: git + state: present + + - name: get vim configuration + tags: vim + ansible.builtin.git: + repo: https://infra.opendoor.fr/git/tom/vim_formation + dest: /tmp/vim_formation + + - name: install vim configuration + tags: vim + ansible.builtin.copy: + src: /tmp/vim_formation/vimrc + dest: "{{ vim_config_dir }}/vimrc" + remote_src: true 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/debian.yml b/tco.setup/vars/debian.yml new file mode 100644 index 0000000..71dff52 --- /dev/null +++ b/tco.setup/vars/debian.yml @@ -0,0 +1,4 @@ +#/home/formation/fact_setup/tco.setup/vars/debian.yml +--- +vim_package: vim-nox +vim_config_dir: /etc/vim/ 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 diff --git a/tco.setup/vars/redhat.yml b/tco.setup/vars/redhat.yml new file mode 100644 index 0000000..199e45d --- /dev/null +++ b/tco.setup/vars/redhat.yml @@ -0,0 +1,5 @@ +--- +#/home/formation/fact_setup/tco.setup/vars/redhat.yml + +vim_package: vim-enhanced +vim_config_dir: /etc/