ansible的user模块

user模块–用户管理模块

参数解释
comment用户的备注,相当于useradd -C
group用户的主组
groups用户的附加组
create_home要不要创建home目录
home指定用户的home目录
system是否创建系统账号(shell=nologin)
uid指定账号的uid
passwordpassword: "{{ ‘密码’

添加用户

指定主组和附加组

---
- name: adduser
  hosts: all
  tasks:
    - name: 添加用户
      user:
        name: devops_user
        commpent: "用户的描述" #相当于useradd -C
        password: "{{ '密码'|password_hash('sha512') }}" 
        shell: /bin/bash
        groups: sys_admins,developers
        # append参数会让groups中的两个组成为用户的附加组
        append: yes	

创建用户时创建密钥对

---
- name: 创建用户
  hosts: all
  tasks:
    - name: 创建用户的密钥对
      user:
      	name: user1
        generate_ssh_key: yes
        ssh_key_bits: 2040
        ssh_key_file: .ssh/id_my_rsa

批量新建用户

---
- hosts: all
  remote_user: root
  tasks:
    - user: name="{{item.name}}" group="{{item.group}}" password="{{'1234567'|password_hash('sha512')}}" update_password=always
      with_items:
        - {name: "omaidb", group: "root"}
        - {name: "jemes", group: "root"}
        - {name: "xiaoming", group: "apache"}

批量删除用户

---
- hosts: all
  tasks:
    - name: 批量删除用户
      user:
        name: "{{item.name}}"
        state: absent
        remove: yes
      with_items:
        - {name: "omaidb"}
        - {name: "jemes"}
        - {name: "xiaoming"}

group模块

参数解释
gid组id
local强制使用本地平台的命令
name组名
statepresent:创建,absent:删除
system创建系统组(几乎用不到)

示例1

- name: 验证auditors组是否存在
  group:
  	name: auditors
  	state: present

known_hosts模块

指定路径记录指纹,几乎用不到
实战中都使用ssh -o 来限制指纹

- name: copy host keys to remote_servers
  known_hosts:
  	path: /etc/ssh/ssh_known_hosts
  	name: user1
  	key: "{{ lookup('file','pubkeys/user1') }}"

authorized_key模块

复制公钥,设置免密登录

- name: set authorized key
  authorized_key:
  	user: user1
  	state: present
  	key: "{{ lookup('file','/home/user1/.ssh/id_rsa.pub') }}"

修改sudoers和禁止root用户登录

---
- name: 创建用户练习
  hosts: all
  vars_files:
    - vars/users_vars.yml
  tasks:
    - name: 创建用户组
      group:
        name: webadmin
        state: present

    - name: 创建用户
      user:
        name: "{{ item.username }}"
        groups: webadmin
      loop: "{{ users }}" 
    - name: 复制公钥
      authorized_key:
        user: "{{ item.username }}"
        state: present
        key: "{{ lookup('file','files/'+ item.username + '.key.pub') }}"
      loop: "{{ users }}"
    - name: 修改sudoers以允许webadmin组免密sudo
      copy:
        content: "%webadmin ALL=(ALL) NOPASSWD: ALL"
        dest: /etc/sudoers.d/webadmin
        mode: 0440
    - name: 关闭root的远程登录
      lineinfile:
        dest: /etc/ssh/sshd_config
        regexp: "^PermitRootLogin"
        line: "PermitRootLogin no"
      notify: Restart sshd

  handlers:
    - name: Restart sshd
      service:
        name: sshd
        state: restarted

第十四题

在这里插入图片描述

解法:
先再ansible.cfg中配置密码文件位置,即可直接执行plabook

vault_password_file = /home/greg/ansible/secret.txt

在这里插入图片描述

---
- name: create user
  hosts: dev,test
  vars_files:
          - locker.yml
          - user_list.yml
  tasks:
          - name: create group devops
            group:
                    name: devops
                    state: present

          - name: developer job
            user:
                    name: "{{ item.name }}"
                    password: "{{ pw_developer|password_hash('sha512') }}"
                    groups: devops
            loop: "{{ users }}"
            when: item.job=='developer'
- name: manager
  hosts: prod
  vars_files:
          - locker.yml
          - user_list.yml
  tasks:
          - name: create opsmgr
            group:
                    name: opsmgr
                    state: present

          - name: manger
            user:
                    name: "{{ item.name }}"
                    password: "{{ pw_manager|password_hash('sha512') }}"
                    groups: opsmgr
            loop: "{{ users }}"
            when: item.job=='manager'
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值