微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ansible实现远程创建用户并对密码进行加密设置

文章目录

@H_502_27@批量添加用户

添加用户,不设置密码的形式

[devops@server1 ansible]$ touch createuser.yml
[devops@server1 ansible]$ vim createuser.yml
---
 - hosts: test
  tasks:
    - name: create user
      user:
        name: "{{ item }}"    #循环 添加user1~3
        state: present
      loop:
        - user1
        - user2
        - user3
  • 执行
[devops@server1 ansible]$ ansible-playbook createuser.yml 
  • 在server2主机查看
[root@server2 ~]# cat /etc/shadow

设置密码,但是密码为明文形式

密码为明文形式,不安全。
方法一:全部写入createuser.yml文件中。

[devops@server1 ansible]$ vim createuser.yml
---
 - hosts: test
  tasks:
    - name: create user
      user:
        name: "{{ item.user }}"
        password: "{{ 'item.pass' | password_hash('sha512') }}"    #采用哈希加密
        state: present
      loop:
        - { user: user1, pass: 123}
        - { user: user2, pass: 456}
        - { user: user3, pass: 789}
执行:
[devops@server1 ansible]$ ansible-playbook createuser.yml
[root@server2 ~]# cat /etc/shadow

方法二:将要添加用户和要执行的任务分开写:

[devops@server1 ansible]$ vim userlist.yml
---
userlist:
 - user: user1
    pass: 123
 - user: user2
    pass: 456
 - user: user3
    pass: 789
[devops@server1 ansible]$ vim createuser.yml
---
 - hosts: test
  vars_files:
    - userlist.yml    #用户名密码文件,在同一个目录下
  tasks:
    - name: create user
      user:
        name: "{{ item.user }}"
        password: "{{ 'item.pass' | password_hash('sha512') }}"
        state: present
      loop: "{{ userlist }}"
执行:
[devops@server1 ansible]$ ansible-playbook createuser.yml

设置密码,且密码为密文形式

  • 查看ansible加密模块的用法
[devops@server1 ansible]$ ansible-vault
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]   加密 编辑 查看 为几个常用的方法

在这里插入图片描述

[devops@server1 ansible]$ vim userlist.yml
---
userlist:
 - user: user1
    pass: '123'
 - user: user2
    pass: '456'
 - user: user3
    pass: '789'    #密码都引起来,字符串
[devops@server1 ansible]$ vim createuser.yml
---
 - hosts: test
  vars_files:
    - userlist.yml
  tasks:
    - name: create user
      user:
        name: "{{ item.user }}"
        password: "{{ item.pass | password_hash('sha512') }}"    #不引
        state: present
      loop: "{{ userlist }}"
[devops@server1 ansible]$ ansible-vault encrypt userlist.yml 
[devops@server1 ansible]$ cat userlist.ym

在这里插入图片描述

[devops@server1 ansible]$ ansible-vault view userlist.yml

在这里插入图片描述

[devops@server1 ansible]$ ansible-vault edit userlist.yml
---
userlist:
 - user: user1
    pass: '123'
 - user: user2
    pass: '456'
 - user: user3
    pass: '789'
 - user: user4   #加入
    pass: 'westos'
[devops@server1 ansible]$ ansible-vault view userlist.yml

在这里插入图片描述

  • 使用加密的方式创建用户
[devops@server1 ansible]$ ansible-playbook createuser.yml --ask-vault-pass

在这里插入图片描述

  • 执行成功,在目标主机server2查看,发现密码已经是加密过的:
[root@server2 ~]# cat /etc/shadow

在这里插入图片描述

  • 可以ssh远程连接,也可以切换su
[devops@server1 ansible]$ ssh user1@server2
[user1@server2 ~]$ su - user4

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐