Ansible 变量
# 避免重复代码,方便维护,减少维护成本
Ansible变量定义
1.命令行
2.play中定义
vars
vars_files
3.lnventory中定义
hosts文件
host_vars目录
group_vars目录
优先级
# 命令行 > vars_files(play) > vars(play) > host_vars(inventory) > group_vars(inventory) > hosts (inventory)
定义ansible变量的位置
在play中定义变量
# vars变量
- hosts: web_group
vars:
user_group: cjk
id: '438'
pkg:
- Nginx
- PHP
- mariadb-server
tasks:
- name: 创建{{ user_group }}组
group:
name: "{{ user_group }}"
gid: "{{ id }}"
- name: 创建{{ user_group }}用户
user
name: "{{ user_group }}"
uid: "{{ id }}"
group: "{{ id }}"
shell: /sbin/nologin
create_home: False
- name: 安装Nginx PHP MysqL
yum:
name: "{{ pkg }}"
state: present
# vars_files变量
- hosts: web_group
vars:
user_group: huanglong
id: '438'
pkg:
- Nginx
- PHP
- mariadb-server
vars_files: ./zls_var.yml
tasks:
- name: 创建{{ user_group }}组
group:
name: "{{ user_group }}"
gid: "{{ id }}"
- name: 创建{{ user_group }}用户
user:
name: "{{ user_group }}"
uid: "{{ id }}"
group: "{{ id }}"
shell: /sbin/nologin
create_home: False
zls_var.yml
user_group: wuyangke
id: '250'
pkg:
- Nginx
- PHP
- mariadb-server
在inventory中定义变量
在inventory文件中定义变量(几乎不用)
[root@m01 ~]# vim /etc/ansible/hosts
[web_group]
web01 ansible_ssh_host=10.0.0.7
web02 ansible_ssh_host=10.0.0.8
[web_group:vars]
user_group=xxx
id='666'
host_vars
# 和yaml文件同级目录下创建目录
- hosts: web_group
vars:
user_group: www
id: "666"
作业
- hosts: all
tasks:
- name: 创建同一用户
group:
name: www
gid: 666
state: present
- name: 创建同一用户
user:
name: www
group: 666
uid: 666
shell: /sbin/nologin
create_home: false
- hosts: nfs,backup
tasks:
- name: 下载nfs,backup
yum:
name: rsync,nfs-utils
state: present
- hosts: backup
tasks:
- name: rsync
copy:
src: /root/rsyncd.conf
dest: /etc/
- name: 创建密码文件,权限600
copy:
content: rsync_backup:123
dest: /etc/rsync.passwd
mode: 0600
- name: 创建backup目录,修改用户
file:
path: /backup
owner: www
group: www
mode: 0755
state: directory
- name: 启动rsync
service:
name: rsyncd
state: started
- hosts: nfs
tasks:
- name: rsync客户端 创建密码文件
copy:
content: 123
dest: /etc/rsync.passwd
mode: 0600
- name: nfs服务端
copy:
content: "/data 172.16.1.0/24(rw.sync.anonuid=666,anongid=666,all_squash)"
dest: /etc/exports
- name: 创建data目录
file:
path: /data
owner: www
group: www
mode: 0755
state: directory
- hosts: web_group
tasks:
- name: 发rpm包
unarchive:
src: /root/Nginx_PHP(1).tar
dest: /root
- name: 安装rpm包
shell: "rpm -Uvh /root/*.rpm"
ignore_errors: yes
- name: 修改Nginxwww用户
copy:
src: /code/Nginx.conf
dest: /etc/Nginx/Nginx.conf
- name: 修改PHP配置文件
copy:
src: /code/www.conf
dest: /etc/PHP-fpm.d/www.conf
- name: 启动Nginx /etc/PHP-fpm
service:
name: Nginx
state: started
- name: 启动Nginx PHP-fpm
service:
name: PHP-fpm
state: started
- name: 创建站点目录
file:
path: /code
owner: www
group: www
state: directory
- name: 部署wordpress
unarchive:
src: /code/latest-zh_CN.tar.gz
dest: /code
owner: www
group: www
- name: 部署配置文件
copy:
src: /code/wordpress.conf
dest: /etc/Nginx/conf.d/
- name: 启动Nginx
service:
name: Nginx
state: reloaded
- name: 启动PHP
service:
name: PHP-fpm
state: reloaded
- hosts: db01
tasks:
- name: 下载数据库
yum:
name: mariadb-server,MysqL-python
- name: 启动数据库
service:
name: mariadb
state: started
enabled: True
- name: 创建库
MysqL_user:
name: wp_user
host: "%"
password: 111
priv: '*.*:ALL'
state: present
- name: 创建库
MysqL_db:
name: wp
state: present
- name: 输出数据库备份文件
copy:
src: /code/wordpress.sql
dest: /opt
- name: 导入数据
MysqL_db:
name: wp
state: import
target: /opt/wordpress.sql
- hosts: web_group
tasks:
- name: 挂载目录
mount:
src: 172.16.1.31:/data
fstype: nfs
path: /code/wordpress/wp-content/uploads
state: mounted
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。