Ansible Tower权限管理使用技术手册_第1页
Ansible Tower权限管理使用技术手册_第2页
Ansible Tower权限管理使用技术手册_第3页
Ansible Tower权限管理使用技术手册_第4页
Ansible Tower权限管理使用技术手册_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AnsibleTower权限管理使用技术手册

【摘要】本文介绍了AnsibleTower的权限管理及其使用方法,先从AnsibleTower的权

限管理使用对象和权限控制对象介绍入手,通过引入一个场景,实战演示了AnsibleTower

的权利管理逻辑及使用方法,文章末尾总结了AnsibleTower权限管理的要点,适用于熟

悉Ansible但还不太了解AnsibleTower的读者。

一.Ansibletower介绍

AnsibleTower是企业级的目动化运维平台,ansible自动化工具的改良和升级版,具有许

多ansible自身并没有的如web图形化展示,权限管理,RESTAPI,日志审计,计划任务

等功能和特性。

AnsibleTower的特点:

•一键执行任务和计划任务

通过Tower的Web界面可以点击鼠标来轻松触发任务的运行。

•基于角色的访问控制

不同用户拥有不同的访问资源的权限,可以设置某些项目为自己可见。

所有的用户密码等信任关系都是加密保存。

•任务面板实时显示

Tower的面板提供ansible任务的实时运行信息。

显示当前有多少项目、主机、任务模板,统计展示。

•强大的RESTfulAPI和CLI工具

Tower所支持的RESTfulAPI可以覆盖所有的功能。

Tower提供详细的RESTAPI文档。

Tower还包含CLI工具,可以完成Tower的管理,比如创建用户,更改密码等。

AnsibleTower相比与ansible多进行了一层软件封装,把nginx,celeryjabbitmq,

postgresql等组件进行了一次集成封装,提供ansibletower集成服务。

二、AnsibleTower权限管理简述

Ansible可以解决日常批量运维中的自动化问题,而AnsibleTower则是解决如何管理

ansible的问题。而管理好ansible的关键则在于对ansible的使用人员进行权限划分,对

操作ansibletower的人员实现最小化权限管理。

在中对于使用对象的戈(]分有三层,

AnsibleTowerOrganizations,Teams,UsersoUsers

是使用对象的最小划分,即一个AnsibleTower的账号对应一个User。Teams次之,

Organizations是使用对象的最大划分。在官方说明中AnOrganizationisalogical

collectionofUsers,Teams,Projects,andInventories,andisthehighestlevelinthe

也清楚的表达了这一点。

Towerobjecthierarchyo

一个Organization拥有users,teams,inventories,projects,jobtemplates,

admins六个元素。不同的Organization是相互隔离的,谁也不知道谁的信息,这六个元

素在创建时也必须指定一个organization才可以。下图展示了organization的管辖范

围。

而对于权限的控制对象则有JobTemplates,WorkflowTemplates,Projects,

inventories,credentials这几类。而不同的控制对象的权限管理则有所不同,其中通用的

权限只有一个admin,表示对该类控制对象具有全部控制权。

JobTemplates具有admin和execute两项权限,分别代表管理员权限和仅执行权限。

具有三项权限,分别代表管理员权限,仅

WorkflcwTemplatusadmin,executezread

执行权限和只读权限。

Projects具有admin,use,update三项权限,分别代表管理员权限,使用权限(只读权

限)和更新权限(修改写权限)。

Inventories具有admin,use,adhoc,update四项权限,分别代表管理员权限,使用

权限(只读权限),adhoc权限(可运行adhoc命令权限)和update权限(修改写权

限)。

Credentials具有admin和use两项权限,分别代表管理员权限和使用权限(只读权

限)。

对于新创建的用户来说,用户则也分为NormalUser,SystemAuditor,System

Administrator三个类型。分别代表普通用户,全局系统审计员,全局系统管理员。普通用

户具有最低权限,全局系统审计员则具有对所有元素的只读权限,全局系统管理员则具有对

所有元素的修改权限。下面是官方给出的对这三种用户类型的解释。

•NormalUser:NormalUsershavereadandwriteaccesslimitedto

theresources(suchasinventory,projects,andjobtemplates)forwhichthat

userhasbeengrantedtheappropriaterolesandprivileges.

•SystemAuditor:Auditorsimplicitlyinherittheread-onlycapabilityforall

objectswithintheTowerenvironment.

•SystemAdministrator:ATowerSystemAdministrator(alsoknown

asSuperuser)hasfullsystemadministrationprivilegesforTower-withfull

readandwriteprivilegesovertheentireTowerinstallation.ASystem

AdministratorstypicallyresponsibleformanagingallaspectsofTowerand

delegatingresponsibilitiesforday-to-dayworktovariousUsers.Assignwith

caution!

对于Organization中的角色则有Auditor,Admin和Member三个角色。Auditor代表

组织审计员,具有对该组织内的所有元素具有只读权限,Admin代表组织管理员,具有对

该组织内的所有元素具有修改权限,Member代表成员,具有该组织内的最低权限。

对于AnsibleTower的管理者而言,特权用户必须要局限在一个可控的范围内,否则将会失

去权限管理的意义。

三.创建User和Organization管理

由于Organizations是使用对象的最大划分,为了便于理解和操作使用,从该章节开始引

入一个实际场景描述AnsibleTower的权限管理方式。

某公司在全国各地都有机房部署,每个地方的机房管理方式不同,运维方式,运维对象也都

不同。上海机房作为总部负责管理AnsibleTower的服务器及Zabbixagent的部署工

作,其余四地西安,南京,深圳,武汉分别管理不同的业务系统。上海地区拥有三名经验丰

富的一线工程师,一名管理员,两名实习生负责运维,其余各地均有一名管理员负责主管本

地机房的运维,各地机房自治管埋,跨地区机房不能操作管理异地的服务器。

那针对于这种场景则可以在总部部署一套AnsibleTower用于全国所有机房的管理,但各

地的实际环境不同,则可以把各地机房分别定义成各自的。rganization,这样可以实现各

地机房的自治管理。

由于该公司需要把各地机房各定义为organization,为了方便统一管理,在总部设置一个

管理员组的organization,为了演示方便这里只创建上海机房和管理员组两个

organization,后续使用均以上海机房organization为主。

在使用AnsibleTower之前需要使用SystemAdministrator用户建立Organizations和

创建和均是在设置里面进行的,我

UsersoUsers,Teams,Organizationscredentials

们可以在这个地方先创建组织和几个用户。

&TOWERPROJECTSINVENTORIESTEMPLATESJOBS

SETTINGS

CREDENTIALTYPESMANAGEMENTJOBSINVENTORYSCRIPTSNOTIFICATIONS

cu«omcreiMfXMiltob«i/MdMArog*thede«nupo<old)obNsrory.CTMC««d*scnptstoloadCnc*umpUctstor卬dngnccrf*acons

fortonetwortchosts«nd•ctMcystreams,dasmadcedfordeMon.bo«sfromanysource.wnhM^Chac.SlackandSMS

doudsources•nisystentvactorginfa.

INSTANCEGROUPSCONFIGURETOW€RABOUTTOWERVIEWYOURLICENSE

P6MS|MOCyofTowe*E*conAfuroon.AAewirrformeoon4boutNsversono<ViewardFtyourtecensenfbrnwtton.

AnvbieTower.

CopyrighcC2017FedH«.Inc.

在设置里面点击Organizations创建组织,输入Name点击SAVE即可创建,我们分别创

建上海机房和管理员组两个organization。在创建好的organization上点击user可以设

置哪些用户属于该organization,在User那也可以设置。

TOWERPROJCCT5INVCNTORICSTCMPL^TCSJOOS④shansha.中胃目。

DESCRIPTIONINSTANCEGROUPSO

Q

CAJKEl

ORGANIZATIONS。

上由屏✓6

OUSERS。TEAMS0USERS

0INVENTORIES0MOJECTS■BINVENTORIESOPROJECTS

0JOBTEMPLATESOADMINSOJOBTEMPLATESOADMINS

点击users进入用户设置页面,继续点击Add创建用户,将星号部分填好SAVE即可创建

出一个用户,其中username即为用户登录使用的用户名,密码为用户登录的密码。注意

在usertype项选择NormalUser,这里创建一个上海管理员的用户,并将该用户的组织

指向上海。

在关键字NEWUSER字段下面有几个选项可以设置user所属的organizations,teams

以及permissions.在用户创建完成后这几个按钮会变亮,后面会提到在这里也可以设置该

用户的权限。

回到Organizations页面,点击组织名下面的user•可以添加和管理该组织的用户有哪些,

我们把各地的管理员用户加到管理员组中。添加用户时可以设置该用户在该组织中的角色是

怎样的,下拉菜单里也能看到Auditor,Admin和Member三个选项,这里把上海管理员

用户设置为管理员组的admin。

TOWERPROJECTSINVENTORIESTEMPLATESJOBS5o

SF7INGS/ORGANIZATIONS/USERS

AODUSERS

假。出安

1PleaseselectUsersfromthelistbelow.

OeTAKS

KEY

USCRNAME.FIRSTNAME粽LASTNAME,

USER*□NanjingIt享

ddminShanghai±«

Nan0ng□sheruhen深圳曾鹿类

Shonghdi□wuhan道理员

sheruhcn□x>an

wuhan

Xidn

2Pleaseassignrotestotheselectedusers/teamsKEY

fftMS

r

Auditor

ORGANIZATIONS

Admin

Member

同理也把上海管理员用户设为上海机房的Admin。后续操作均使用上海管理员用户操作。

!1!.User和Team管理

在创建好上海机房和管理员组两个organization之后,我们继续添加用户,把全国的管理

员建立好,再针对于上海机房的实际使用情况创建几个特殊的用户。

其中南京管理员,上海管理员,深圳管理员,武汉管理员,西安管理员均属于管理员组

organization,我们再把上海管理员也设置为管理员组的admin,这样上海管理员即为两

个的

organizationadmin0

«3fi/a

Shanghai✓8

thenzhen分圳✓6

wuhansex✓g

Xian«a✓e

MdOll5辉工程的✓g

>»ollu上海小刘程辅✓g

|)ldOQin

实习生6

MdowangJJ•小王程知✓a

>iaozhang上海,原苏习生✓e

除了上海管理员之外,上海机房还有五名工作人员,其中小李,小刘,小王为一线运维工程

师,小秦和小张则为实习生,这样上海机房组里就有6个用户了。

现在开始创建Team,对于组也有相应的权限划分,对于上海机房而言我们根据职位进行划

分,因为一线运维工程师需要对运维环境做很多复杂的实际操作,而对于实习生来说他们只

需要做一些简单的事就行了。

TOWERPROTEMPLATESJOBSadmino骂

SETTINGSITEAMS/CREATETEAM

SELECTORGANIZATION

NEWTEAM

KEY

NAVE.

NAM€

一心0烟oDefault

Osystem

CANCEL

O

TEAMS。

♦ADO

CANCEL

NAMEAOONS

system

Emergencyexecutorsystem0

在设置里点击Teams创建组,输入Name,选择上海机房organization保存即可,这里

我们创建一线运维组和二线学习组两个team.

创建完team之后,Team名称下的users选项会变亮,点击users可以把用户关联到该组

中,关联时用户可以多选。我们把小李,小刘,小王加入一线运维组,并把小王设置成

admin。

TOWFRPROJECTSINVENTOWES④adnunO

SITTINGS/TEAMS/TliMI姐/USERS

一日皿期ADOUSERS

1Pleaseselectusersfromthegbe<ow.

QKEY

B

USERNAMf•RRSTHAMC#LASTNAMEt

aXiaoliSh*

Sixwottu5h刘

□xwoqm女习生

Mxiaowang5小王—

<TtS

□waozhang上MW》实习生

2Pteaseassignrolestotheselectedusers/teams

上对小王rwtitZL.

上“卜季一《®•工…

上刘一《4*工..

同理把小张和小秦加入二线学习组,加入之后可以看到二线学习组里有两个member。

3TDNGS/TEAMS/习期/USERS

DeTAILS

USER.ROCE

odmmCVtTfcMADMMKTRATOft

xlaoqinMfMSE

至此,我们把ansibletower中的organization,use「和team三层使用对象建立完毕,

接下来将创建权限管理的控制对象inventories,credentials,projects,,templates,

通过对控制对象指定不同的权限,加深对AnsibleTower权限管理的理解。

五.Inventories和Credentials管理

inventory和credential是AnsibleTower控制对象的两个不可或缺的部分,inventory决

定了AnsibleTower所管理的对象是哪些服务器,而credential则决定了这些服务器的认

证方式。

由于不同的AnsibleTower版本创建inventory的链接位置有所不同,我这里的3.2.5版本

的inventory在上沿,点击INVENTOR正S,输入inventory名称,选择organization即

可创建完成。

OTOWERPROJECTSINVENTORIESTEMPLATESJOBS②shanghai。三0。

INVENTORIES

QR£Y

NAME-TYPEeORGANZATION,ACTIONS

•±MAn54bteTowerKfiBinventoryJMfUS/6

•O上海Zabbrelfi拄量务■Inventory上海机房✓8

・上期至量熊努SIinventoryUIMfiJS✓

a•"SB试环境inventory上丽B✓8

dO全国全量熊务81inventory―电✓0

ffWS

这里我们创建5个inventory,其中全国全量服务器属于管理员组,其余inventory均属于

上海机房组,这样划分的结果就是管理员组里的成员看不到上海机房组里有哪些

inventory,并且上海机房组里的成员也并不知道管理员组里的inventory是怎样的。

属于上海机房的四个inventory则可以根据运维工程师的管辖范围进一步去区分。点击

inventory名称进入inventory详情页面,点击details边上的permissions设定对该

inventory的权限。对于上海全量服务器inventory,我们可以直接使用组划分权限,点击

TEAMS设置组权限,对于一线运维组我们把其角色设置为update,表示可以更新该

inventory,若有日常运维需要也可以把ad-hoc权限追加到一线运维组中;对于二线学习

组我们只能给其use权限,不能让实习生们随意修改或删除该inventory中的数据。

对于上海全量服务器inventory我们可以使用组进行大范围的赋权操作,但对于其他更细的

服务器列表则必须把权限限制到指定用户。拿上海AnsibleTower服务器inventory举

例,上海小刘负责AnsibleTower的运维工作,而其实习生徒弟小秦也跟着小刘负责

AnsibleTower,对于上海AnsibleTower服务器inventory来说权限必须控制在这两个

人之内。我们给一线运维工程师小刘赋予admin权限,让其可以添加或者修改该

inventory,而小秦则只能拥有use权限。

对于小秦而言,他对上海全量服务器inventory和上海AnsibleTower服务器而言均只有

use权限,使用小秦登录AnsibleTower之后可以看到上海全量服务器inventory可修改

的部分均是灰色只读的。

❹TOWERPROJECTSINVENTORIESTEMPLATESJOBS④»aoq<n0S0

IN^NTORIES/上再至量&务31

上♦全0M*X

GROUPSHOSTSSOURCESCOMPLOEOjOeS

NAMEASCRIPTION•ORGANIZATION

QUWIW

INSIGHTSCREDENTIALINSTANCEGAOUPSQ

VARIABIYAWL|JSONJ

上面也提到过,inventory决定管理对象是哪些服务器,而credential则决定了这些服务器

的认证方式。对于不同的inventory也需要不同credential去认证管理,credential的权

限管理同样重要。我们点击设置中的credentials创建credential,输入name上海服务器

认证,选择organization上海机房,credentialtype选择machine即可创建。

TOWERPAOjeCTSINVEMTOWGSTEMPLATESJOOS③QwnghAl05^0

SETTINGS/CR£DfNTlAlS/CRCATECREDENTIAL

NEWCREDENTIAL

PfRMISSlONS

•NAMEOORGANIZATION

认证Q上禽机房

♦CREDENTIALTYP€

Machine

TYPfDCTAILS

rootSHOW

SSHPRIVATEKEYHINT:Dr”Mddropan5SHprw«cekey砧onthefteldbe19M

□PromptonUunch

SHOW

PRMLEGEESCALATIONPASSWORD□Prompconlaunch

SHOW

CANCEL

这里

credentialtype可根据实际情况选择,在typedetails输入服务器认证的用户名密码,或

者在下方粘贴认证私钥,AnsibleTower会将credential信息以加密的形式存入数据库

中。

创建完成后点击details旁边的permissions设置对该credential的权限,对于

credential的权限设置更要细致,我们先将二线学习组赋予use权限。

对于一线运维工程师而言,也不是所有一线运维工程师都需要去修改该credential,基于权

限管理最小化原则,我们把上海小王赋予admin权限,仅允许小王可修改,而小李和小刘

也只能拥有use权限。

同理,我们再创建全国服务器认证和git仓库权限认证两个credential,其中git仓库认证

则是用于后面projects认证。由于不同的organization之间是隔离的,处于上海机房组的

成员是无法看到全国服务器认证credential的,反之一样。

❷TOWERPROJECTSINVENTORIESTEMPLATES

JOBS(J)shanghai◎空0。

SENGS/CREDENTIALS

CREDENTIALSO

QKEY*ADD

NAME-KINDOWNERSACTIONS

Git仓JER队底SourceCoritroishanghaiZd

xiaowang.shanghai"

上M为■认证Machinea

全CBK务■认证Machineshanghai.管理员蛆Z6

EMS1.)

六.Projects和Templates管理

对于projects和templates可以理解为项目和执行计划,project只是一个静态的项目,

而templates则是关联了inventory,credential,project的一个可执行任务。

点击inventory左侧的project来创建项目,我们创建一个部署zabbixagent的项目,隶

属于上海机房,SCMType选择git,输入git的url,选择SCMcredential为刚才创建的

Git仓库权限认证即可。

PROJECTS/CREATEPROJECT。

NEWPROJECT

NAMEDESCRIPTIONORGANIZATION

SVzabbixagentQUWLB

•SCMTYPE

SOURCtDCTAILS

♦"Ml向GVMAfiANTM/TAAATOMMIT的XhlTUM

hapy/www^thub.«XTVz4bbixmasterQGit色W认证

SCMUPOATE8TIONS

□Cleg。

□DekteonUpdate。

BUpdateonlaunchQ

CACHETIMEOUT(SECONOS)O

实际运维中SCMType可根据实际需要自行选择,同样操作,我们再创建一个查看服务器

中的错误日志的project,为这个project把控权限。

创建完成后点击details旁边的permissions设置该项目的权限,由于该项目的常用性,我

们还可以对用户和组同时设置权限,只需要勾选就可以。我们给一线运维组均赋予update

更新权限;对于实习生小秦来说,他还需要使用这个project去做一些AnsibleTower的

排错工作,所以单独给小泰赋use权限;资深老员工小李作为兼顾项目管理工作自然需要

该project的admin权限。

创建完projects之后,要想让projects真正运行起来需要依靠执行计划。我们继续创建两

个jobtemplate对应刚创建的两个project。

JobTemplate需要的参数比较多,输入Name任务名称查找AnsibleTower中的错误日

志,JobType选择Run,inventory则选择上海AnsibleTower服务器,project选择刚

创建的查看服务器中的错误日志,playbook则选择项目中需要执行的哪一个yaml文件,

credential选择上海服务器认证,verbosity使用默认输出,其他选项根据实际需求添加,

保存即可创建好该jobtemplate。

❷IOWERPROJECTSINVENTORIESTEMPLATESJOBS⑧xiaowang。三g©

TEMPLATES/宜找AnsibkTower中的W日志

DETAILSPERMISSIONSNOTIFICATIONSCOMPIHED)OBSADOSURVEY

♦NAMEDESCRIPTION•JOBTYPE©□PROMPTONLAUNCH

■tUnsibleTower中的w俣日;BRun.

♦INVENTORYQ□PROMPTONLAUNCH♦PROJECTQ•PLAYBOOK©

Q±WAnsibleTowergg若靠Q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论