2. 创建库存文件
在此文件中指定要由 Ansible 管理的主机列表
[jack@onitroad ~]$vi inventory.ini [Centos7] 192.168.1.141
Ansible for devops 是一个类似于 Chef、Puppet 的 IT 配置管理、部署和编排的开源工具,非常简单易用,因为它使用 SSH 连接到服务器并运行配置的任务,而不是使用代理。
在本教程中,我们将介绍如何将 CentOS 7 /RHEL 7 服务器加入 Active Directory 并限制对指定 AD 安全组的登录访问和 sudo 访问。
3. 运行剧本
让我们做一个语法检查,我们应该在运行角色之前运行它:
[jack@onitroad ~]$ansible-playbook -i inventory.ini join-domain.yml --syntax-check
最后,我们可以使用以下命令运行角色
[jack@onitroad ~]$ansible-playbook -i inventory.ini join-domain.yml Password for jack@onitroad: PLAY [Install and configure AD authentication] ** TASK [Install the required packages] *** changed: [192.168.1.141] TASK [Install pexpect using pip] changed: [192.168.1.141] TASK [Join system to AD and add the computer object in the Linux OU] changed: [192.168.1.141] TASK [Add default_domain_suffix to sssd.conf] *** changed: [192.168.1.141] TASK [Allow the LinuxAdmins AD group to logon to the system] changed: [192.168.1.141] TASK [Add the LinuxAdmins AD Group to sudoers] ** changed: [192.168.1.141] RUNNING HANDLER [restart realmd] changed: [192.168.1.141] RUNNING HANDLER [restart sssd] ** changed: [192.168.1.141] PLAY RECAP ** 192.168.1.141 : ok=8 changed=8 unreachable=0 failed=0
1. 创建剧本
-- ## This playbook installs and configures AD authentication - name: Install and configure AD authentication hosts: all gather_facts: no become: yes become_method: sudo vars_prompt: - name: "bind_password" prompt: "Password for jack@onitroad" private: yes tasks: - name: Install the required packages yum: name: realmd,sssd,oddjob,oddjob-mkhomedir,adcli,samba-common,samba-common-tools,ntpdate,ntp,python-pip state: present notify: - restart realmd - name: Install pexpect using pip pip: name: pexpect - name: Join system to AD and add the computer object in the Linux OU expect: command: /bin/bash -c "/usr/sbin/realm join jack@onitroad --computer-ou=OU=Linux,OU=Servers,DC=onitroad,DC=LOCAL onitroad.local" responses: Password for *: "{{ bind_password }}" - name: Add default_domain_suffix to sssd.conf lineinfile: dest: /etc/sssd/sssd.conf line: 'default_domain_suffix = onitroad.local' insertafter: '^\[sssd\]' notify: - restart sssd - name: Allow the LinuxAdmins AD group to logon to the system command: /bin/bash -c "/usr/sbin/realm permit -g jack@onitroad" - name: Add the LinuxAdmins AD Group to sudoers lineinfile: dest: /etc/sudoers line: '%jack@onitroad ALL=(ALL) ALL' insertafter: '^%wheel' handlers: - name: restart realmd service: name: realmd state: restarted - name: restart sssd service: name: sssd state: restarted
vars_prompt 名为 bind_password,我们将其中提示输入管理员 AD 帐户的密码,通过使用选项 private: yes 字符将不会显示。
安装所需的包:在第一次播放中,我们将安装所有必需的包以将系统加入 AD。
使用 pip 安装 pexpect :我们将安装 expect 模块,该模块将响应输入管理员密码的提示
将系统加入 AD 并在 Linux OU 中添加计算机对象:这里我们将加入域并在 OU=Linux,OU=Servers 中添加计算机帐户
将 default_domain_suffix 添加到 sssd.conf :我们将使用 lineinfile 通过指定默认域来更改 sssd.conf。
允许 LinuxAdmins AD 组登录到系统:这里我们将只允许 LinuxAdmins 登录到系统。
将 LinuxAdmins AD 组添加到 sudoers :最后,我们将编辑 sudoers 文件并将 LinuxAdmins 添加到 sudoers。
日期:2020-06-02 22:18:59 来源:oir作者:oir