博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible学习05-变量vars
阅读量:6653 次
发布时间:2019-06-25

本文共 3174 字,大约阅读时间需要 10 分钟。

Ansible中使用变量操作 会使我们操作方便很多,本次说下简单的变量用法

- hosts: docker    remote_user: root    vars:        nginx80: /usr/local/nginx/conf/vhost        nginx14:  https://nginx.org/download/nginx-1.14.2.tar.gz    tasks:     - command: ls nginx-1.14.2.tar.gz       register: result     - command: ls /usr/local/nginx/conf/vhost       register: han       ignore_errors: true     - name: wget nginx_url14.2       shell: wget https://nginx.org/download/nginx-1.14.2.tar.gz       when: result|failed     - name: mkdir nginx conf       shell: mkdir -p {
{ nginx80 }} when: han|failed - name: touch nginx config file: path={
{ nginx80 }}/{
{ item }} mode=0644 state=touch with_items: - nginx80.conf - nginx8080.conf
上面是定义的nginx配置文件目录和下载nginx1.14的压缩包,然后调用使用
你也可以换一种写法
vars:     -  nginx80: /usr/local/nginx/conf/vhost     -  nginx14:  https://nginx.org/download/nginx-1.14.2.tar.gz

你也可以在一个vars里面定义多个name

- hosts: docker      remote_user: root      vars:        nginx:          nginx80: /usr/local/nginx/conf/vhost1          nginx14:  https://nginx.org/download/nginx-1.14.2.tar.gz        wwwuser:          nginxuser: www       tasks:       - name: conf nginx         shell: wget {
{nginx.nginx14 }} - name: mkdir nginx80 shell: mkdir -p {
{nginx.nginx80}} - name: touch nginx config file: path={
{ nginx.nginx80 }}/{
{ item }} mode=0644 state=touch with_items: - nginx_var.conf - name: gourp www group: name={
{ wwwuser['nginxuser']}} gid=3001 - name: useradd nginx user user: name={
{ wwwuser.nginxuser }} group=www uid=3001 shell=/sbin/nologin
当我们定义多个vars的时候 有两种方式在写
A: {
{ nginx.nginx80 }} B: { wwwuser['nginxuser']}}

引入变量

vars_files:        - /data/sh/vars_nginx.yml        -  /data/sh/vars_nginx_user.yml

例子

- hosts: docker      remote_user: root      vars_files:       - /data/sh/vars_nginx.yml       - /data/sh/vars_nginx_user.yml      tasks:       - name: conf nginx         shell: wget {
{nginx.nginx14 }} - name: mkdir nginx80 shell: mkdir -p {
{nginx.nginx80}} - name: touch nginx config file: path={
{ nginx.nginx80 }}/{
{ item }} mode=0644 state=touch with_items: - nginx_var.conf - name: gourp www group: name={
{ wwwuser['nginxuser']}} gid=3001 - name: useradd nginx user user: name={
{ wwwuser.nginxuser }} group=www uid=3001 shell=/sbin/nologin

交互式输入参数给与变量

- hosts: docker     remote_user: root     vars:      nginx:        nginx80: /usr/local/nginx/conf/vhost1        nginx14:  https://nginx.org/download/nginx-1.14.2.tar.gz      wwwuser:        nginxuser: www     vars_prompt:      - name: "user_name"        prompt: "Enter input name"        private: no      - name: "user_Password"        prompt: "Enter input password(md5之后的加密串)"         encrypt: "sha512_crypt"   #给与哈希加密   confirm实现密码确认功能 开启是需要数据两次密码        confirm: yes     tasks:      - name: create user        user: name="{
{user_name}}" uid=3004 group=root password="{
{user_Password}}" shell=/bin/bash home=/home/{
{user_name}}

转载于:https://blog.51cto.com/9025736/2330474

你可能感兴趣的文章
【C语言】19-static和extern关键字1-对函数的作用
查看>>
9、单机运行环境搭建之 --CentOS-6.4下mysqldump 备份与还原数据库
查看>>
分享:C++中头文件、源文件之间的区别与联系
查看>>
好类 笔记
查看>>
Web前端浏览器兼容初探【转】
查看>>
菜鸟开技术博啦
查看>>
关于多线程生命周期原理
查看>>
如何使用U盘安装操作系统 安装GHOST XP, xp纯净版
查看>>
POJ 1062 昂贵的聘礼
查看>>
理解Java对象序列化——Serializable接口
查看>>
一个简易的WebServer程序
查看>>
Python学习入门基础教程(learning Python)--5.3 Python写文件基础
查看>>
关于js加密解密
查看>>
JBoss7快速入门
查看>>
Sequence one(hdu2610dfs+去重)
查看>>
每日英语:Rethinking How We Watch TV
查看>>
[置顶] EasyMock的简单使用
查看>>
WeakReference and WeakHashMap
查看>>
mmc生产任务分配问题
查看>>
mysql 优化配置参数详解
查看>>