Ansible 自动安装 LDAP

LDAP Installation

软件版本信息

软件 版本 备注
os CentOS Linux release 7.5.1804 (Core)
ldap OpenLDAP: slapd 2.4.44 (Oct 30 2018 23:14:27)
python Python 3.6.5
ansible ansible 2.7.5

功能列表

功能 功能说明 备注
更改密码 用户可以自行更改密码 需要遵循密码规则(2个小写字符,包含数字,包含特殊字符,长度不得小于9位)规则信息
ssh-key登录 通过 ssh-key 登录 用户提供公钥进行公钥配置,连接时使用私钥进行连接无需密码(linux)
web-brower web浏览器访问 用户可通过浏览器进行查看与配置
sudo 限制用户执行的命令 通过 sudo 规则进行用户行为限制
时钟同步 主服务同步Internet,其他服务器同步主服务器 保持与 server端时间相同
可选添加模块 自行选择安装所需模块 根据实际情况进行模块的选择
自动添加 client 可自动对客户端进行安装配置 配置 housts 进行 client 增加
添加用户与组 可自行添加所需用户与组 根据需求添加必要的组与用户

安装指南

以下链接请移步源码

快速安装 基础配置安装 时钟同步 服务端安装 命令行使用
扩展功能安装 客户端安装配置 添加客户端 自定义用户添加

安装效果

测试

  1. 创建用户、组

    ansible-playbook 07-addaccount.yml --extra-vars "@account_json.json"
    cat account_json.json
    {
      "user_name": "user5",
      "user_passwd": "1qazxsw2",
      "group_name": "dev_ops",
      "user_id": "1005",
      "group_id": "505",
      "mail": "[email protected]",
      "sudo_roles": true,
      "create_group": true,
      "create_user": true,
      "add_group": true
    }
    

    web查看效果

    Ansible 自动安装 LDAP_第1张图片

  2. 测试密码登录

    ssh [email protected]
    [email protected]'s password:
    You are required to change your password immediately (root enforced)
    need a new password
    Creating directory '/home/user5'.
    WARNING: Your password has expired.
    You must change your password now and login again!
    Changing password for user user5.
    (current) LDAP Password:
    

    密码策略生效,首次登录需要更改密码

    # 配置密码为123456,密码复杂度检测为生效
    check_password_quality: module error: (check_password.so) Password for dn="uid=user5,ou=Users,dc=laoshiren,dc=com" does not pass required number of strength checks for the required character sets (3 of 2).
    # 配置密码为qzaCZa,1 规则要匹配到自定义的复杂度要求
    passwd: all authentication tokens updated successfully.
    # 使用新密码登录成功
    ssh [email protected]
    [email protected]'s password:
    Last login: Thu Jan 17 21:10:31 2019 from 172.16.10.1
    [user5@kubernetes-node1 ~]$
    
  3. 测试 sudo 规则

    # 匹配到配置的 sudo 组策略,并且不需要输入密码
    [user5@kubernetes-node1 ~]$ sudo -l
    匹配 %2$s 上 %1$s 的默认条目:
        !visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
        env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
        XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep="MAIL PS1 PS2
        QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep="LC_TIME
        LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin:/bin:/usr/sbin:/usr/bin
    用户 user5 可以在 kubernetes-node1 上运行以下命令:
        (ALL) NOPASSWD: /bin/bash, /bin/chmod, /bin/chown, /bin/mv, /usr/bin/vim, /usr/bin/passwd
    [user5@kubernetes-node1 ~]$
    
  4. 测试使用 ssh-key 方式登录

    配置增加 objecclass 并增加 ssh-key

    Ansible 自动安装 LDAP_第2张图片

    Ansible 自动安装 LDAP_第3张图片

    # 使用私钥登录
    ssh -i ~/.ssh/id_rsa [email protected]
    Last login: Thu Jan 17 21:11:51 2019 from 172.16.10.1
    [user5@kubernetes-node1 ~]$
    
  5. 验证ppolicy生效

    查看更改密码历史,记录5次

    Ansible 自动安装 LDAP_第4张图片

    新建用户,测试密码过期提醒

    ssh [email protected]
    [email protected]'s password:
    password will expire in 90 days
    Last login: Thu Jan 17 21:36:28 2019 from 172.16.10.1
    

你可能感兴趣的:(Linux,运维)