# Ansible Community Personas ###### tags: `Documentation` The goal of this document is to describe the main personas for the people interacting with the Ansible community, with a focus on docs.ansible.com. The end goal would be to ensure we have a smooth journey into and through our documentation for each of these personas (aka reader types). **note** - This is not a linear journey, nor are these exclusive personas. People will shift based on their background and what they are trying to achieve. * flesh out the top tasks for each persona * map out journeys -how a user becomes a contributor, becomes a creator or developer, and path to being on Steering committee, collection maintainer, etc * Verify all this with community. # High-level personas The following lists the main Ansible community personas: * **user** - Uses content created by someone else or creates playbooks, roles, etc. Does not require python/coding skills. Users can become contributors if they share their content or knowledge with the community (via galaxy/NG etc). * **contributor** Participates in the Ansible community. Contributes to one or more Ansible projects, including coding and non-coding contributions. Participates in meetups, social media, blogs,forums etc to share their Ansible knowledge Anyone involved in Ansible can be a potential contributor. See the [docsite personas](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view) to see how these map into potential entry points on docs.ansible.com. # Personas in detail ## User (content consumer/content creator) **Goal** to automate repetative tasks within their organization. ### Docsite personas that map to Users * [novice](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Ansible-novice--) * [content creator](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Content-creator--) * [AWX/GalaxyNG admin](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#AWXGalaxy-operations--) ### Top tasks * Beginner tasks: * Installs and/or updates ansible or ansible-core * Installs or updates individual collections * Creates and tests playbooks * Creates inventories * Tests, publishes, and maintains all of these * Intermediate tasks: * Creates roles * Creates job templates (for AWX users) * Uses event-driven automation (ansible-rulebook - new) * Contributes to collections (bugfixes, modules etc) * Tests, publishes, and maintains all of these * Advanced: * Creates collections (reusable plugins, roles, and playbooks) * Creates execution environments (collections, libraries, and ansible-core version) * Tests, publishes, and maintains all of these #### Top tasks for AWX/GalaxyNG operations * Manages private galaxyNG to store and share collections, roles, and EEs. * Includes AWX for job templates etc. * Configure which execution environments to use with an automation job, where to execute it, and manage who can run it. ### Ansible projects of interest to newer users - Ansible, ansible-core and most all of its commands - galaxyNG (to install a collection with its playbooks) - AWX Playbook troubleshooting tools of interest: - ansible-navigator - ansible-xxx (vscode, vim, and emacs) plugins ### Ansible projects of interest for the intermediate/advanced user * ansible/ansible-core including ansible-test * ansible-lint * ansible IDE plugins (vscode, vim, emacs) * ansible-navigator (for developing and testing collections, playbooks with/wo EEs) * ansible-builder * ansible-rulebook * ansible-sign (signed verification of collections) * molecule * event-driven ansible * wisdom * https://github.com/ansible/creator-ee They may use AWX and galaxyNG but are not typically administering those instances. ### Ansible projects of interest to AWX/GalaxyNG operations * AWX - controls playbooks, EEs, RBAC, projects,and inventories within job templates that content consumers can use. Includes logging and monitoring. * GalaxyNG - hosts collections and EEs. ## Contributor **goal** To participate in the Ansible community, including code and non-code participation. ### Docsite personas that map to contributors * [community member/contributor](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?both#Community-membercontributor--) * [developer](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Ansible-developer--) * [collection maintainer](https://hackmd.io/pZb5w5JFRQW3RJ73n23tlw?view#Collection-ownermaintainer--) ### Top tasks This persona has overlap with users and developers but includes unique element such as: * Shares content for public reuse, either in the Ansible package or in Galaxy(NG). * Provides bugfixes or enhancements to existing Ansible projects and collections. * Interacts with community, including meetups, working groups, discussions, votes, issues, and PRs (creating or reviewing). * May be a coder, writer, release infrastructure manager, community manager, etc. ### Ansible projects of interest for contributors All projects are of interest. What is helpful for a community member or contributor is to have a common process to interact with different or multiple Ansible projects. This may include such items as: * Common contributor guidelines and ways to interact (e.g. matrix vs slack, irc,, discourse vs mailing lists, etc). ### Developer (subset of contributors) **Goal** To extend or modify existing Ansible projects or content to support their individual needs. Develops code in the Ansible ecosystem for private use or to share (contributor). #### Top Tasks * Extends any Ansible project - bugfixes * Creates individual plugins or playbooks/roles for a collection * Maintains one or more collections * Troubleshoots problems with their plugins/collections Public collection developers are heavy plugin developers but private collection developers may do more with roles/playbooks wrapped into a collection package. #### Projects of interest to developers Same as content creator but with additional needs for: * CI test setup (no specific ansible project for this) * Developing content or code (developer and contributor guides that are part of Ansible and ansible-core as well as individual contributor guides for other Ansible projects). # List of projects The following lists all projects considered in the development of these personas: * ansible/ansible-core including ansible-test * ansible-lint * ansible IDE plugins (vscode, vim, emacs) * ansible-navigator (for developing and testing collections, playbooks with/wo EEs) * ansible-builder * ansible-rulebook * ansible-sign (signed verification of collections) * EDA (event-driven ansible) * galaxyNG * AWX Projects still TBD (do they fit here?): * ansible-sdk * molecule * runner * pinakes * receptor * wisdom see [this issue](https://github.com/ansible-collections/overview/issues/49) for other notes.