GithubHelp home page GithubHelp logo

robinjtu / tower-cli Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ansible/tower-cli

0.0 2.0 0.0 893 KB

Command line tool and client library for Ansible Tower's REST API

Home Page: ansible.com/tower

License: Apache License 2.0

Python 100.00%

tower-cli's Introduction

Build Status Coverage Status Version Downloads License Supported Python Versions

Welcome to tower-cli

tower-cli is a command line tool for Ansible Tower. It allows Tower commands to be easily run from the Unix command-line. It can also be used as a client library for other python apps, or as a reference for others developing API interactions with Tower's REST API.

About Tower

Ansible Tower is a GUI and REST interface for Ansible that supercharges it by adding RBAC, centralized logging, autoscaling/provisioning callbacks, graphical inventory editing, and more.

Tower is free to use for up to 30 days or 10 nodes. Beyond this, a license is required.

Capabilities

This command line tool sends commands to the Tower API. It is capable of retrieving, creating, modifying, and deleting most objects within Tower.

A few potential uses include:

  • Launching playbook runs (for instance, from Jenkins, TeamCity, Bamboo, etc)
  • Checking on job statuses
  • Rapidly creating objects like organizations, users, teams, and more

Installation

Tower CLI is available as a package on PyPI.

The preferred way to install is through pip:

$ pip install ansible-tower-cli

The main branch of this project may also be consumed directly from source.

Configuration

Configuration can be set in several places. The tower-cli itself can edit it's own configuration, or users can directly edit the configuration file.

Set configuration with tower-cli config.

The preferred way to set configuration is with the tower-cli config command. The syntax is:

$ tower-cli config key value

By issuing tower-cli config with no arguments, you can see a full list of configuration options and where they are set.

You will generally need to set at least three configuration options: host, username, and password; these correspond to the location of your Ansible Tower instance and your credentials to authenticate to Tower.

$ tower-cli config host tower.example.com
$ tower-cli config username leeroyjenkins
$ tower-cli config password myPassw0rd

Write to the config files directly.

The configuration file can also be edited directly. A configuration file is a simple file with keys and values, separated by : or =:

host: tower.example.com
username: admin
password: p4ssw0rd

The locations searched for the configuration file are given below.

File Locations

The order of precedence for configuration file locations is as follows, from least to greatest:

  • internal defaults
  • /etc/awx/tower_cli.cfg (written using tower-cli config --global)
  • ~/.tower_cli.cfg (written using tower-cli config)
  • run-time paramaters

Usage

CLI invocation generally follows this format:

$ tower-cli {resource} {action} ...

The "resource" is a type of object within Tower (a noun), such as user, organization, job_template, etc.; resource names are always singular in Tower CLI (so: it's tower-cli user, never tower-cli users).

The "action" is the thing you want to do (a verb). Most Tower CLI resources have the following actions: get, list, create, modify, and delete, and have options corresponding to fields on the object in Tower.

Some examples:

# List all users.
$ tower-cli user list

# List all non-superusers
$ tower-cli user list --is-superuser=false

# Get the user with the ID of 42.
$ tower-cli user get 42

# Get the user with the given username.
$ tower-cli user get --username=guido

# Create a new user.
$ tower-cli user create --username=guido --first-name=Guido \
                        --last-name="Van Rossum" [email protected]

# Modify an existing user.
# This would modify the first name of the user with the ID of "42" to "Guido".
$ tower-cli user modify 42 --first-name=Guido

# Modify an existing user, lookup by username.
# This would use "username" as the lookup, and modify the first name.
# Which fields are used as lookups vary by resource, but are generally
# the resource's name.
$ tower-cli user modify --username=guido --first-name=Guido

# Delete a user.
$ tower-cli user delete 42

# Launch a job.
$ tower-cli job launch --job-template=144

# Monitor a job.
$ tower-cli job monitor 95

When in doubt, help is available!

$ tower-cli # help
$ tower-cli user --help # resource specific help
$ tower-cli user create --help # command specific help

License

While Tower is commercially licensed software, tower-cli is an open source project, and we encorage contributions. Specfically, this CLI project is licensed under the Apache 2.0 license. Pull requests and tickets filed in GitHub are welcome.

(C) 2015, Michael DeHaan, and others, Ansible, Inc.

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.