Code Monkey home page Code Monkey logo

ansible-role-atom's Introduction

Ansible Role: Atom

Tests Ansible Galaxy License

Role to install the atom.io text editor by GitHub.

Requirements

  • Ansible >= 2.9

  • Linux Distribution

    • Debian Family

      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
      • Note: other versions are likely to work but have not been tested.

Role Variables

The following variables will change the behavior of this role (default values are shown below):

# Users to install packages for and/or write config.cson
users: []

Users are configured as follows:

users:
  - username: # Unix user name
    atom_packages:
      - # package 1
      - # package 2
    atom_config: # The config (in YAML not CSON)
    atom_config_overwrite: yes # By default the config file will not be overwritten

Example Playbooks

Minimal playbook:

- hosts: servers
  roles:
    - role: gantsign.atom

Playbook with packages installed and config:

- hosts: servers
  roles:
    - role: gantsign.atom
      users:
        - username: vagrant
          atom_packages:
            - minimap
            - linter
            - atom-beautify
            - file-icons
          atom_config:
            '*':
              core:
                projectHome: '/home/vagrant/workspace'
              editor:
                showIndentGuide: true
                showInvisibles: true

More Roles From GantSign

You can find more roles from GantSign on Ansible Galaxy.

Development & Testing

This project uses Molecule to aid in the development and testing; the role is unit tested using Testinfra and pytest.

To develop or test you'll need to have installed the following:

Because the above can be tricky to install, this project includes Molecule Wrapper. Molecule Wrapper is a shell script that installs Molecule and it's dependencies (apart from Linux) and then executes Molecule with the command you pass it.

To test this role using Molecule Wrapper run the following command from the project root:

./moleculew test

Note: some of the dependencies need sudo permission to install.

License

MIT

Author Information

John Freeman

GantSign Ltd. Company No. 06109112 (registered in England)

ansible-role-atom's People

Contributors

by-erik avatar freemanjp avatar lusitaniae avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ansible-role-atom's Issues

Declare privilege escalation for tasks

Currently the privilege escalation isn't being declared for the tasks that need it; because of this, to use this role you have to declare the privilege escalation for the role in your playbook, or run the whole playbook using sudo.

If the privilege escalation is declared for the tasks of this role, it'll work out of the box with no additional config required by the user.

Add ability to overwrite config file

I think it would be interesting to have the option to overwrite the config file for atom, this would be disabled by default.

Current code:


- name: write config
  become: yes
  template:
    src: config.cson.j2
    dest: '~{{ item.username }}/.atom/config.cson'
    force: no
    owner: '{{ item.username }}'
    group: '{{ item.username }}'
    mode: 'u=rw,go='
  with_items: '{{ users }}'
  when: "item.atom_config is defined and item.atom_config not in ({}, '', None, omit)"

I can submit a PR if you like the idea.

Declare Ubuntu Trusty and Xenial as supported

This role works correctly on Ubuntu Trusty and Xenial but these versions are not declared in the Ansible Galaxy metadata as supported versions.

Since Trusty and Xenial are the current and previous LTS versions of Ubuntu it would be helpful to declare them as supported.

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.