1.创建hostinfo.yml文件
[devops@server4 ansible]$ vim hostinfo.yml
---
- hosts: all
tasks:
- name: create infofile
template:
src: templates/info.j2
dest: /mnt/hostinfo
2.在templates创建模版info.j2
[devops@server4 ansible]$ cd templates/
[devops@server4 templates]$ vim info.j2
主机名: {{ ansible_facts['hostname'] }}
根分区大小: {{ ansible_facts['devices']['dm-0']['size'] }}
系统内核: {{ ansible_facts['kernel'] }}
系统版本: {{ ansible_facts['distribution_version'] }}
DNS: {{ ansible_facts['dns']['nameservers'] }}
3.语法检测
[devops@server4 ansible]$ ansible-playbook hostinfo.yml --syntax-check
playbook: hostinfo.yml
4.推送
[devops@server4 ansible]$ ansible-playbook hostinfo.yml
[devops@server4 ansible]$ ansible all -a 'ls -l /mnt/hostinfo'
[devops@server4 ansible]$ ansible server5 -a 'cat /mnt/hostinfo'
[devops@server4 ansible]$ ansible server6 -a 'cat /mnt/hostinfo'
1.建立install.yml
[devops@server4 ansible]$ vim install.yml
---
- hosts: all
tasks:
- name: install httpd
yum:
name: httpd
state: present
when: ansible_facts['hostname'] == 'server5'
- name: install mariadb
yum:
name: mariadb
state: present
when: ansible_facts['hostname'] == 'server6'
2.语法检测
[devops@server4 ansible]$ ansible-playbook install.yml --syntax-check
playbook: install.yml
3.推送
某台主机安装多个服务
1.修改install.yml
2.语法检测
3.推送
1.把hosts.j2放到模版目录templates
[devops@server4 ansible]$ cp /etc/hosts templates/hosts.j2
[devops@server4 ansible]$ vim hostinfo.yml
[devops@server4 ansible]$ ansible-playbook hostinfo.yml --syntax-check
playbook: hostinfo.yml
1.建立用户
1.)创建adduser.yml
[devops@server4 ansible]$ vim adduser.yml
---
- hosts: all
tasks:
- name: create users
user:
name: "{{ item }}"
state: present
password: westos
loop:
- user1
- user2
- user3
- user4
2.)语法检测
[devops@server4 ansible]$ ansible-playbook adduser.yml --syntax -check
playbook: adduser.yml
3.)推送
[devops@server4 ansible]$ ansible-playbook adduser.yml
[devops@server4 ansible]$ vim adduser.yml
---
- hosts: all
vars_files:
- vars/userlist.yml
tasks:
- name: create users
user:
name: "{{ item.user }}"
state: present
password: "{{ item.pass }}"
loop: "{{ userlist }}"
[devops@server4 ansible]$ mkdir vars
[devops@server4 ansible]$ cd vars/
[devops@server4 vars]$ vim userlist.yml
---
userlist:
- user: user1
pass: westos
- user: user2
pass: redhat
3.)语法检测
[devops@server4 ansible]$ ansible-playbook adduser.yml --syntax -check
playbook: adduser.yml
4.)推送
[devops@server4 ansible]$ ansible-playbook adduser.yml
5.)密码明文显示不安全
[root@server5 ~]# tail -n 4 /etc/shadow
3.用户信息加密
1)加密用户信息文件
[devops@server4 vars]$ ansible-vault encrypt userlist.yml
New Vault password:
Confirm New Vault password:
Encryption successful
[devops@server4 ansible]$ vim adduser.yml