Skip to main content

This project manages servers by rebooting using BCM due to crashes.

Project description

Starlyng Server Management

This project manages servers by rebooting using BCM due to crashes.

Prerequisites

Install ipmitool on the server you will run the script. You can usually do this via your package manager:

  • Ubuntu: sudo apt-get install ipmitool
  • macOS: brew install ipmitool
  • If outside local network, set Port Forwarding on the network for BCM IP to 623

Before you begin, ensure you have met the following requirements:

  • You have installed Python 3.x.
  • You have a basic understanding of Python and virtual environments.

Setting Up Your Development Environment

To set up your development environment and run the project, follow these steps:

Clone the Repository

First, clone the repository to your local machine:

git https://github.com/starlyngapp/server-management.git
cd server-management

Create and Activate Virtual Environment

For macOS and Linux:

python -m venv venv
source venv/bin/activate

For Windows:

python -m venv venv
venv\Scripts\activate

Setup Environment for VSCode

  • Open the Command Palette (Ctrl+Shift+P)
  • Search for the Python: Create Environment command, and select it
  • Select Venv
  • Select Python interpreter
  • Select dependencies to install

Install Required Packages

Install all dependencies listed in the dev-requirements.txt file:

pip install -r dev-requirements.txt

Installation

To install only the package (without dev dependencies):

pip install starlyng_server_management

To install development dependencies (useful for contributing to the project):

pip install starlyng_server_management[dev]

Alternatively, you can install the development dependencies using:

pip install -r dev-requirements.txt

Environment Configuration

To configure server management, you need to set up environment variables. This can be done by creating a .env file in the root of the project.

An example .env file is provided as .env.example. You can copy this file and update the values as needed.

Steps to Configure Environment Variables

  1. Copy the example environment file:
cp .env.example .env
  1. Open the .env file and update the values:
# .env
# List of server IPs and ports in the format ip:port, separated by commas
BCM_SERVERS=192.168.1.1:8001,192.168.1.2:8002

# BCM username
BCM_USER=user

# BCM password
BCM_PASSWORD=secret
  1. Save the .env file.

The BCM_SERVERS variable should be a comma-separated list of server IP addresses and ports.

Usage

To run the main function:

server_management

PyPI

starlyng-server-management

Command-line Arguments

You can also override configuration using command-line arguments:

server_management --bcm_servers "192.168.1.1:22,192.168.1.2:22" --bcm_username "bcm_username" --bcm_password "secret"

Or locally:

python main.py --bcm_servers "192.168.1.1:22,192.168.1.2:22" --bcm_username "bcm_username" --bcm_password "secret"

Building and Uploading Your Package

  1. Build the package:
python setup.py sdist bdist_wheel
  1. Upload to PyPI:
twine upload dist/*

Upload using specific project name referenced in .pypirc

twine upload dist/* --repository starlyng-server-management

Running Tests

To run tests, execute the following command in your terminal:

pytest

This command will run all tests and report the results. You can also run specific tests by providing the path and filename of the test file.

Contributing to the Project

Contributions to this project are welcome. Here's how you can contribute:

  1. Fork the project.
  2. Create your feature branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -am 'Add some YourFeature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a pull request.

Contact

If you have any questions, please contact us at:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starlyng_server_management-0.1.1.tar.gz (12.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

starlyng_server_management-0.1.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file starlyng_server_management-0.1.1.tar.gz.

File metadata

File hashes

Hashes for starlyng_server_management-0.1.1.tar.gz
Algorithm Hash digest
SHA256 42a4d6107bfcf49368b4bfe6d44a1d63839d982f16d094a6dc0533bb75504c00
MD5 ce777e66d5ec9c14f81b1fefb421408b
BLAKE2b-256 ca7240333ea75ff4943954bac29a416c098daa44336e232773f78bb4089bcb51

See more details on using hashes here.

File details

Details for the file starlyng_server_management-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for starlyng_server_management-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9692775bd7462d17a349dd10a638adf4dd309e9095db5c676a15f07dbc4d99b8
MD5 77a5a5368e15d21e653307a0221d4652
BLAKE2b-256 8c4141ca0310e52ddb737d76aee2ac7dc96ef1c3f7754f95706c2e9414eba21c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page