环境
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 [email protected]
此处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 尝试解决