Giter Site home page Giter Site logo

rice's Introduction

Ubuntu RICE Scripts

RICE scripts for configuring a Ubuntu desktop environment.

Overview

This repo houses two components: an Ansible playbook and a command line utility. The Ansible playbook is responsible for doing 98% of the configuration and installation on the system. The core tag will setup some common tooling, the SwayWM window manager with all my presets and scripts, and a functioning development environment. Other tags may or may not be available for special situations such as a laptop or macbook specific hardware configuration.

The command line utility is called ricectl and is meant to make the process of iteratively applying and updating the RICE configuration and tools easier. The ricectl command can be used to easily execute Ansible, update the local RICE repository, and add/remove ansible tags.

Installation

The installation process is expected to be run on a fresh installation of Ubuntu. Simply login to the system, start a terminal and run the following:

curl https://raw.githubusercontent.com/calebstewart/rice/main/setup.sh | sh

NOTE: You should not run this with sudo. Instead, the setup script will use sudo when needed, and mark log entries requiring administrative access with SUDO.

The setup script will ensure we have Python and git installed, and then clone the RICE repository to $HOME/.local/share/rice. Next, it will setup a virtual environment in $HOME/.local/share/rice/env for installing Ansible and ricectl.

After the ricectl and ansible packages are installed, the script will symlink the ricectl binary to /usr/local/bin so that you have access to it normally.

The last thing the setup script does is run ricectl status, which will show the current commit and tags that you have configured. At this point, you can add or remove tags with the ricectl add-tag and ricectl remove-tag commands.

Once you have configured your tags, you are ready to apply the Ansible playbook! Simply the following to kick off ansible. You will be prompted for the BECOME password, which is your user password, which is used to elevate permissions as needed.

ricectl apply

Updating (pulling changes)

For system packages, the ricectl apply command will perform a full apt upgrade. You can update the ricectl command itself and the Ansible playbooks with the ricectl sync command.

Pushing Changes

If you have made modifications to the ansible playbook, and want to push those changes back to the remote repository, you'll need to navigate to $HOME/.local/share/rice, make a commit, and push using standard git commands. You will have to authenticate to GitHub. By default, the setup.sh script clones the repository with https, but you can change the URL to use SSH (and therefore SSH keys) with this command:

cd ~/.local/share/rice
git remote set-url origin [email protected]:calebstewart/rice.git

rice's People

Contributors

calebstewart avatar jpl1337 avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.