From 25b7f91097c737b364a865659e5508b307ccfc15 Mon Sep 17 00:00:00 2001 From: vincent Date: Sun, 14 Mar 2021 13:41:46 +0100 Subject: [PATCH] init ansible-arch-provissionning --- .travis.yml | 29 ++++++++++++++++++++++++++ README.md | 32 +++++++++++++++++++++++++++++ defaults/main.yml | 14 +++++++++++++ handlers/main.yml | 2 ++ meta/main.yml | 52 +++++++++++++++++++++++++++++++++++++++++++++++ tasks/main.yml | 31 ++++++++++++++++++++++++++++ tests/inventory | 2 ++ tests/test.yml | 5 +++++ vars/main.yml | 2 ++ 9 files changed, 169 insertions(+) create mode 100644 .travis.yml create mode 100644 README.md create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 meta/main.yml create mode 100644 tasks/main.yml create mode 100644 tests/inventory create mode 100644 tests/test.yml create mode 100644 vars/main.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..36bbf62 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,29 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible + - pip install ansible + + # Check ansible version + - ansible --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Basic role syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check + +notifications: + webhooks: https://galaxy.ansible.com/api/v1/notifications/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..861e980 --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +Role Name +========= + +provission arch OS via archiso + +Requirements +------------ + +- booting on arch instaltion media +- Use vim to edit the file /etc/ssh/sshd_config by changing the ChallengeResponseAuthentication setting to yes and PermitEmptyPasswords to yes or set root password with passwd +- restart sshd with ```systemctl restart sshd``` + +Role Variables +-------------- + + +Dependencies +------------ + + +Example Playbook +---------------- + +License +------- + +BSD + +Author Information +------------------ + +VDU diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..7a7ba56 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,14 @@ +--- +# defaults file for ansible-arch-provissionning +partition_table: + - device: "/dev/sda" + settings: + - number: 1 + part_end: 512MB + name: boot + flags: [boot, esp] + - number: 2 + part_start: 512MB + name: root + flags: [lvm] + diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..8f1c226 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,2 @@ +--- +# handlers file for ansible-arch-provissionning diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..c572acc --- /dev/null +++ b/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/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..f7195db --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,31 @@ +--- +# tasks file for ansible-arch-provissionning +- name: Abort if the host is not booted from the Arch install media + fail: + msg: "This host is not booted from the Arch install media!" + when: ansible_nodename != 'archiso' + +- name: Synchronize clock via NTP + command: timedatectl set-ntp true + +- name: wipe drives + j + loop: '{{ partition_table }}' + +- name: create partition + +- name: create filesystems + +- name: mount + +- name: add local mirror + +- name: pacstrap + +- name: Set up initramfs + +- name: Set up grub + +- name: Reboot + + diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 0000000..878877b --- /dev/null +++ b/tests/inventory @@ -0,0 +1,2 @@ +localhost + diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 0000000..b7e778a --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ansible-arch-provissionning diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..7ae5641 --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,2 @@ +--- +# vars file for ansible-arch-provissionning