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

ansible练习3变量

1、创建一个名为 locker.yml 的 ansible vault 文件存储用户密码:

Vault 文件中包含两个变量:

pw_developer: imadev

pw_manager: imamgr

加密此文件的密码为redhat

此密码存放在:~/ansible/secret.txt

echo redhat > ~/ansible/secret.txt
chmod 600 ~/ansible/secret.txt
cd ~/ansible 
#创建加密yml文件,并且指定密码文件位置
ansible-vault create --vault-password-file=secret.txt locker.yml
pw_developer: imadev
pw_manager: imamgr
#查看我们刚刚是否添加成功
ansible-vault view locker.yml

在这里插入图片描述

2、创建用户账户

创建的用户账户清单user_list.yml
配合上一题的locler.yml,创建名为users.yml的playbook,要求如下:

用户的 job description 为 developer 的用户, 创建到 dev和test 主机组中,用户密码来自pw_developer变用量,用户的附加组是devops

用户的 job description 为 manager 的用户,创建到 prod 主机组中,用户密码来自pw_manager变量,用户附加组是opsmgr

用户密码使用 SHA512 hash

cd ~/ansible
这里先创建用户账户清单,yml文件要严格注意格式,不能多一个空格
vim user_list.yml
users:
  - name: bob
    job: developer
  - name: sally
    job: manager
  - name: fred
    job: developer
接下来创建我们的清单文件
vim inventory 
[dev]
serverb

[test]
serverc

[prod]
serverd

[all:vars]
ansible_ssh_private_key_file="/root/.ssh/key"
创建配置文件
vim ansible.cfg
[defaults]
inventory = ./inventory
remote_user = root
ask_pass = false
编写playbook
---
 - name: user add
   hosts: dev,test
   vars_files:
     - locker.yml
     - user_list.yml
   tasks:
     - name: add devops group
       group:
         name: devops
         state: present

     - name: dev and test useradd
       user:
         name: "{{ item.name }}"
         groups: devops
         password: "{{ pw_developer | password_hash('sha512') }}"
       loop: "{{ users }}"
       when: item.job == 'developer'
 - name: create manager
   hosts: prod
   vars_files:
     - locker.yml
     - user_list.yml
   tasks:
     - name: add  opsmgr group
       group:
         name: opsmgr
         state: present
         
     - name: prod useradd
       user:
         name: "{{ item.name }}"
         groups: opsmgr
         password: "{{ pw_manager | password_hash('sha512') }}"
       loop: "{{ users }}"
       when:  item.job == 'manager'
       
#执行playbook
ansible-playbook users.yml --vault-password=secret.txt

对我们刚刚的playbook执行结果进行

在这里插入图片描述

3、为 Ansiblev ault 文件修改密码

请为~/anstble/expense.yml 添加密码密码为: veryimportant
然后修改密码为:notveryimportant

cd ~/anxible
#创建expense.yml
vim expense.yml
name: bob
#对这个文件进行加密
echo veryimportant > pass.txt
#使用加密文件加密现有yml
ansible-vault encrypt --vault-id pass.txt expense.yml
#更改加密密码
ansible-vault rekey  expense.yml 
Vault password: 旧密码 
New Vault password: 新密码
Confirm New Vault password:新密码 
Rekey successful   修改成功

在这里插入图片描述

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

相关推荐