{"action":"created","issue":{"url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/627","repository_url":"https://api.github.com/repos/F5Networks/f5-ansible","labels_url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/627/labels{/name}","comments_url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/627/comments","events_url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/627/events","html_url":"https://github.com/F5Networks/f5-ansible/issues/627","id":296912136,"number":627,"title":"New Module: Add support for 'auth tacacs', 'auth remote-role' & 'auth source type tacacs'","user":{"login":"neozoolook","id":26312551,"avatar_url":"https://avatars1.githubusercontent.com/u/26312551?v=4","gravatar_id":"","url":"https://api.github.com/users/neozoolook","html_url":"https://github.com/neozoolook","followers_url":"https://api.github.com/users/neozoolook/followers","following_url":"https://api.github.com/users/neozoolook/following{/other_user}","gists_url":"https://api.github.com/users/neozoolook/gists{/gist_id}","starred_url":"https://api.github.com/users/neozoolook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neozoolook/subscriptions","organizations_url":"https://api.github.com/users/neozoolook/orgs","repos_url":"https://api.github.com/users/neozoolook/repos","events_url":"https://api.github.com/users/neozoolook/events{/privacy}","received_events_url":"https://api.github.com/users/neozoolook/received_events","type":"User","site_admin":false},"labels":[{"id":655719477,"url":"https://api.github.com/repos/F5Networks/f5-ansible/labels/high","name":"high","color":"5319e7","default":false},{"id":322141033,"url":"https://api.github.com/repos/F5Networks/f5-ansible/labels/new-module","name":"new-module","color":"fad8c7","default":false}],"state":"open","locked":false,"assignee":{"login":"caphrim007","id":46956,"avatar_url":"https://avatars1.githubusercontent.com/u/46956?v=4","gravatar_id":"","url":"https://api.github.com/users/caphrim007","html_url":"https://github.com/caphrim007","followers_url":"https://api.github.com/users/caphrim007/followers","following_url":"https://api.github.com/users/caphrim007/following{/other_user}","gists_url":"https://api.github.com/users/caphrim007/gists{/gist_id}","starred_url":"https://api.github.com/users/caphrim007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caphrim007/subscriptions","organizations_url":"https://api.github.com/users/caphrim007/orgs","repos_url":"https://api.github.com/users/caphrim007/repos","events_url":"https://api.github.com/users/caphrim007/events{/privacy}","received_events_url":"https://api.github.com/users/caphrim007/received_events","type":"User","site_admin":false},"assignees":[{"login":"caphrim007","id":46956,"avatar_url":"https://avatars1.githubusercontent.com/u/46956?v=4","gravatar_id":"","url":"https://api.github.com/users/caphrim007","html_url":"https://github.com/caphrim007","followers_url":"https://api.github.com/users/caphrim007/followers","following_url":"https://api.github.com/users/caphrim007/following{/other_user}","gists_url":"https://api.github.com/users/caphrim007/gists{/gist_id}","starred_url":"https://api.github.com/users/caphrim007/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caphrim007/subscriptions","organizations_url":"https://api.github.com/users/caphrim007/orgs","repos_url":"https://api.github.com/users/caphrim007/repos","events_url":"https://api.github.com/users/caphrim007/events{/privacy}","received_events_url":"https://api.github.com/users/caphrim007/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2018-02-13T22:40:19Z","updated_at":"2018-03-19T18:27:57Z","closed_at":null,"author_association":"NONE","body":"<!--- Verify first that your issue/request is not already reported in GitHub -->\r\n\r\n##### ISSUE TYPE\r\n<!--- Pick one below and delete the rest: -->\r\n - Feature Idea\r\n\r\n\r\n##### COMPONENT NAME\r\n<!--- Name of the module/role/task -->\r\nNew Module/s suggested\r\n\r\n##### ANSIBLE VERSION\r\n<!--- Paste verbatim output from “ansible --version” between quotes below -->\r\n```\r\nTarget 2.6 release if possible\r\n```\r\n\r\n##### PYTHON VERSION\r\n<!--- Paste verbatim output from “python -V” between quotes below -->\r\n```\r\n\r\n```\r\n\r\n##### BIGIP VERSION\r\n<!---\r\nPaste verbatim output from “tmsh show sys version” between quotes below\r\n-->\r\n```\r\n\r\n```\r\n\r\n##### LIBRARY VERSIONS\r\n<!---\r\nPaste verbatim output from “pip freeze | egrep '(f5-sdk|bigsuds)'” between quotes below\r\n-->\r\n```\r\n\r\n```\r\n\r\n##### CONFIGURATION\r\n<!---\r\nMention any settings you have changed/added/removed in ansible.cfg\r\n(or using the ANSIBLE_* environment variables).\r\n-->\r\n\r\n##### OS / ENVIRONMENT\r\n<!---\r\nMention the OS you are running Ansible from, and the OS you are\r\nmanaging, or say “N/A” for anything that is not platform-specific.\r\n-->\r\n\r\n##### SUMMARY\r\n<!--- Explain the problem briefly -->\r\nPortions of the configuration that we leverage bigip_command.py to complete to support authentication of the F5 with TACACS;\r\n\r\n```\r\nauth tacacs system-auth {\r\n    authentication use-all-servers\r\n    protocol ip\r\n    secret $XXXXXXXXXXXXXXXXXXXX==\r\n    servers { 10.10.10.10:49163 10.10.10.11:49163 }\r\n    service ppp\r\n}\r\n\r\nauth remote-role {\r\n    role-info {\r\n        AUDITOR {\r\n            attribute F5-LTM-User-Info-1=Auditor\r\n            console %F5-LTM-User-Shell\r\n            line-order 1020\r\n            role %F5-LTM-User-Role\r\n            user-partition %F5-LTM-User-Partition\r\n        }\r\n        FIREWALLMGR {\r\n            attribute F5-LTM-User-Info-1=firewall-manager\r\n            console %F5-LTM-User-Shell\r\n            line-order 1030\r\n            role %F5-LTM-User-Role\r\n            user-partition %F5-LTM-User-Partition\r\n        }\r\n        FULL-ACCESS {\r\n            attribute F5-LTM-User-Info-1=Administrator\r\n            console %F5-LTM-User-Shell\r\n            line-order 1050\r\n            role %F5-LTM-User-Role\r\n            user-partition %F5-LTM-User-Partition\r\n        }\r\n    }\r\n}\r\n\r\nauth source {\r\n    type tacacs\r\n}\r\n\r\n```\r\n\r\n##### STEPS TO REPRODUCE\r\n<!---\r\nFor bugs, show exactly how to reproduce the problem.\r\nFor new features, show how the feature would be used.\r\n-->\r\nCurrent playbook examples of how this is done with bigip_command.py.\r\n\r\n<!--- Paste example playbooks or commands between quotes below -->\r\n```\r\n---\r\n- name: Add configurations for TACACS Support\r\n  bigip_command:\r\n    commands:\r\n      - create auth tacacs system-auth authentication use-all-servers protocol ip secret XXXXX servers add { {{ tac_serv_1 }} {{ tac_serv_2 }} } service ppp\r\n      - modify auth remote-role role-info add { AUDITOR { attribute F5-LTM-User-Info-1=Auditor console %F5-LTM-User-Shell line-order 1020 role %F5-LTM-User-Role user-partition %F5-LTM-User-Partition } }\r\n      - modify auth remote-role role-info add { FIREWALLMGR { attribute F5-LTM-User-Info-1=firewall-manager console %F5-LTM-User-Shell line-order 1030 role %F5-LTM-User-Role user-partition %F5-LTM-User-Partition } }\r\n      - modify auth remote-role role-info add { FULL-ACCESS { attribute F5-LTM-User-Info-1=Administrator console %F5-LTM-User-Shell line-order 1050 role %F5-LTM-User-Role user-partition %F5-LTM-User-Partition } }\r\n    server: \"{{ ansible_host }}\"\r\n    user: \"{{ username }}\"\r\n    password: \"{{ password }}\"\r\n    validate_certs: \"no\"\r\n  delegate_to: localhost\r\n\r\n\r\n---\r\n- name: Apply TACACS as Auth method on F5\r\n  bigip_command:\r\n    commands:\r\n      - modify auth source type tacacs\r\n    server: \"{{ ansible_host }}\"\r\n    user: \"{{ username }}\"\r\n    password: \"{{ password }}\"\r\n    validate_certs: \"no\"\r\n  delegate_to: localhost\r\n```\r\n\r\n<!--- You can also paste gist.github.com links for larger files -->\r\n\r\n##### EXPECTED RESULTS\r\n<!--- What did you expect to happen when running the steps above? -->\r\n\r\n##### ACTUAL RESULTS\r\n<!--- What actually happened? If possible run with high verbosity (-vvvv) -->\r\n\r\n<!--- Paste verbatim command output between quotes below -->\r\n```\r\n\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/comments/374317386","html_url":"https://github.com/F5Networks/f5-ansible/issues/627#issuecomment-374317386","issue_url":"https://api.github.com/repos/F5Networks/f5-ansible/issues/627","id":374317386,"user":{"login":"yxeGithub","id":20427930,"avatar_url":"https://avatars3.githubusercontent.com/u/20427930?v=4","gravatar_id":"","url":"https://api.github.com/users/yxeGithub","html_url":"https://github.com/yxeGithub","followers_url":"https://api.github.com/users/yxeGithub/followers","following_url":"https://api.github.com/users/yxeGithub/following{/other_user}","gists_url":"https://api.github.com/users/yxeGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/yxeGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yxeGithub/subscriptions","organizations_url":"https://api.github.com/users/yxeGithub/orgs","repos_url":"https://api.github.com/users/yxeGithub/repos","events_url":"https://api.github.com/users/yxeGithub/events{/privacy}","received_events_url":"https://api.github.com/users/yxeGithub/received_events","type":"User","site_admin":false},"created_at":"2018-03-19T18:27:57Z","updated_at":"2018-03-19T18:27:57Z","author_association":"NONE","body":"Perhaps make this a generic feature request and add the other Remote authentication options:\r\n\r\nActive Directory - LDAP - TACACS - RADIUS - APM - Client Cert LDAP\r\n\r\nSo for Active Directory - \r\nTMSH Commands\r\nmodify auth ldap system-auth login-attribute samaccountanme search-base-dn dc=company,dc=com servers add {192.168.0.50} user-template %s@company.com\r\nmodify auth ldap system-auth bind-dn CN=mysuperuser,CN=Users,DC=company,DC=com bind-pw $hashedpassword== check-roles-group enabled login-attribute samaccountname search-base-dn dc=company,dc=com servers add { 192.168.0.50 } user-template %s@company.com\r\nmodify auth remote-role role-info add {DomainAdmins {attribute \"memberOf=CN=Domain Admins,CN=Users,DC=company,DC=com\" line-order 1001 role administrator user-partition All}}\r\nmodify auth source {type active-directory}"}}
{"actor":{"display_login":"yxeGithub"}}