变量,循环
创建用户
vim createuser.yml
---
- hosts: localhost
vars_files: 指定变量文件
- userlist.yml
tasks:
- name: craete user
user:
name: "{{ item.user }}"
password: "{{ item.pass | password_hash('sha512') }}"
state: present
loop: "{{ userlist }}"
vim userlist.yml
---
userlist: #密码不能是纯数字
- user: user1
pass: westos1
- user: user2
pass: westos2
- user: user3
pass: westos3
文件加密:
ansible-vault
[create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
ansible-vault encrypt userlist.yml 加密
ansible-vault decrypt userlist.yml 解密
ansible-vault edit userlist.yml 编辑加密文件
ansible-vault view userlist.yml 查看加密文件
ansible-playbook createuser.yml --ask-vault-pass 推送加密文件
磁盘分区,逻辑卷:(基于分区)
ansible localhost -m setup 查看localhost主机信息
ansible-doc --list |grep parted 过滤分区
ansible-doc --list |grep lv 过滤lvs
无变量分区:
---
- host: test
vars_files:
tasks:
- name: create a new primary partition
parted:
device: /dev/vdb
number: 1
part_start: 1MiB
part_end: 1GiB
state: present
- name: create two partition
parted:
device: /dev/vdb
number: 2
part_start: 1GiB 第二次分区必须指定开始位置
part_end: present
start: present
设置变量:
---
- host: test
var_files:
- storage_vars.yml
vars_files:
tasks:
- name: create a new primary partition
parted:
device: /dev/vdb
number: "{{ item.number }}"
part_start: "{{ item.start }}"
part_end: "{{ item.end }}"
state: present
loop: "{{ partitions }}"
# 创建逻辑卷
- name: create volume group
lvg:
vg: demo_vg
pvs: /dev/vdb1
- name: create a local volume
lvol:
vg: demo_vg
lv: test
size: 100%VG
resizefs: true
force: yes
state: present
#when: test not in ansible_lvm['lvs']
- name: create a xfs filesystem
filesystemc:
fstype: xfs
dev: /dev/demo_vg/test
- name: mount lvs
mount:
path: /var/www/html
src: /dev/demo_vg/test
fstype: xfs
opts: noatime 不更改访问时间
state: mounted 会直接挂载,就能够使用
vim storage_vars.yml
partitions:
- number: 1
start: 1GiB
end: 1GiB
- number: 2
start: 1GiB
end: 2GiB