环境

ubuntu 16.04

需要安装Kerberos;

有一个AD域CLOUD.COM需要集成;

域控服务器为ad.cloud.com

设置域名解析

在ubuntu服务器修改域名解析文件 /etc/resolvconf/resolv.conf.d/base

nameserver 192.168.1.234

nameserver 223.5.5.5

第一行为局域网内DNS解析服务器,通常和AD是一个

第二行公共DNS

修改后进行更新

sudo resolvconf -u

测试能ping通AD服务器

ping ad.cloud.com

时间同步

因为ad.cloud.com的域控本身就是时间服务器,所以设定本台ubuntu和域控时间同步

安装包

sudo apt-get install ntpdate

同步时间

sudo ntpdate ad.cloud.com

最好设crontab进行定期对时

05 */1 * * * ntpdate ad.cloud.com

安装Kerberos

安装kerberos依赖包

sudo apt-get install krb5-kdc krb5-admin-server

安装的时候需要提供默认realm,填入 CLOUD.COM

安装后同样需要建立realm,使用命令

sudo krb5_newrealm

此处会要求提供密码,请牢记

遇到的坑:由于 kdb5_util 需要从 /dev/random 设备取得随机数用于安全密码计算 , 而新创建的 Linux 虚拟机很可能因为系统熵不够导致随机数不够用的情况 。 这时可以使用 haveged 增加系统的熵 。执行命令:

sudo apt install haveged

编辑配置

sudo vim /etc/krb5.conf

配置文件内容增加:

[libdefaults]

default_realm = CLOUD.COM

......

[realms]

CLOUD.COM = {

kdc = ad.cloud.com

}

[domain_realm]

......

.cloud.com = CLOUD.COM

启动服务

sudo service krb5-kdc start

验证

执行命令

kinit domainuser@CLOUD.COM

此处domainuser是域用户名 CLOUD.COM是域, 会提示输入密码,成功的话无任何输出。

6.如何删除

之前遇到过重装软件的情况,但每次配置文件都没删干净,导致重装后还有,正确的删除方式

先找出安装包

dpkg --get-selections | grep -v deinstall | grep krb

然后删除

apt-get purge krb5-config krb5-locales krb5-user

特别注意删除krb5-config

还有一个目录需要检查,如果存在一并删除

/var/lib/krb5kdc/principal'

安装postgresql

由于ansible-tower依赖postgresql数据库,所以必须先安装,以下安装客户端和服务端

sudo apt-get install postgresql postgresql-client

安装好以后新建数据库和用户

切换到postgres用户

sudo su - postgres

执行命令进入sql控制台

psql

此时可以为postgres用户设定一个密码(可选)

\password password

创建用户awx

CREATE USER awx WITH PASSWORD 'awx';

创建数据库awx

CREATE DATABASE awx OWNER awx;

赋权

GRANT ALL PRIVILEGES ON DATABASE awx to awx;

退出

\q

测试登录数据库

psql -U awx -d awx -h 127.0.0.1 -p 5432

安装ansible-tower

tower的安装包可直接从官网下载,解压到某一目录。

首先需要修改编辑inventory配置文件,内容如下

[tower]

localhost ansible_connection=local

[database]

[all:vars]

#ansible-tower登录密码

admin_password='admin'

#PostgreSQL监听地址端口

pg_host='127.0.0.1'

pg_port='5432'

pg_database='awx'

pg_username='awx'

pg_password='awx'

rabbitmq_port=5672

rabbitmq_vhost=tower

rabbitmq_username=tower

#here

rabbitmq_password='tower'

rabbitmq_cookie=cookiemonster

# Needs to be true for fqdns and ip addresses

rabbitmq_use_long_name=false

运行安装脚本

sudo ./setup.sh

安装完成后,即可访问web页面,用户名admin,密码在上一步配置文件中定义的。然后需导入License文件。License文件可去官网申请,免费版可管理10个host

设置windows被管机器

环境要求

安装Framework 3.0+

设置PowerShell本地脚本运行权限为remotesigned

升级PowerShell至3.0+

自动设置Windows远端管理,英文全称WS-Management(WinRM)

设置PowerShell本地脚本运行权限

执行以下ps命令

set-executionpolicy -executionpolicy unrestricted

自动设置Windows远端管理

可通过运行脚本ConfigureRemotingForAnsible.ps1来执行.

执行结果没有返回值即为正常。如执行出现“由于此计算机上的网络连接类型之一设置为公用,因此 WinRM 防火墙例外将不运行”类似报错,请在 PowerShell 中执行命令 Enable-PSRemoting – SkipNetworkProfileCheck –Force 尝试解决