ansible控制oracle,ansible逻辑控制语句

条件判断语句 when

when 的基本用法

when 是条件判断语句,类似编程语言的if

tasks:

- command: /bin/false

register: result

ignore_errors: True

- command: /bin/command

when: result |failed

- commadn: /bin/command_else

when: result|success

- command: /bin/command_else_else

when: result|skipped

与include一起使用

- include: tasks/sometasks.yml

when: “‘reticulating splines’ in output”

与role 一起使用

- host: all

roles:

- {role: debian_stock_config, when: ansible_os_family == 'debian'}

loop 循环

字典循环

with_items 用于迭代的list类型变量,支持简单的字符列表,哈希列表

- name: add several users

user: name{{item.name}} state=present groups={{item.groups}}

with_iterms:

- {name: 'name1', groups: 'group1'}

- {name" 'name2', groups: 'group2'}

使用 .号访问内层和外层的变量

循环也可以嵌套,使用[ ]访问内层和外层的循环,例如item[0]

对哈希表的循环

在变量文件中或者使用vars区域定义了一组列表变量items,可以这样使用

vars:

items: ["user1","user2"]

tasks:

....

with_items: "{{iterms}}"

with_dict: "{{字典名}}"

文件循环(with_file, with_fileglob)

with_file 是将每个文件的文件内容作为item的值

with_fileglob 是将每个文件的全路径作为item的值, 在文件目录下是非递归的, 如果是在role里面应用改循环, 默认路径是roles/role_name/files_directory

- copy: src={{ item }} dest=/etc/fooapp/ owner=root mode=600

with_fileglob:

- /playbooks/files/fooapp/*

bolck 块

使用block关键字可以将多个任务整合成一个块,把这个块当成一个整体,对这个块进行判断,当条件成立时,执行块中的所以语句

tasks:

- debug:

msg: "task1 not in block"

- block:

- debug:

msg: "task2 in block1"

- debug:

msg: "task3 in block1"

when: 2 > 1

错误处理功能

错误处理功能就是当任务出错时,执行指定的其他任务

**failed 的用法**

tasks:

- block:

- shell: 'ls /ooo'

rescue:

- debug:

msg: 'I caught an error'

**rescue的用法**

tasks:

- block:

- shell: 'ls /opt'

- shell: 'ls /testdir'

- shell: 'ls /c'

rescue:

- debug:

msg: 'I caught an error'

always:

- debug:

msg:"this always executes"

如上例所示,block中有三个任务,这三个任务中的任何一个任务错了,就会执行rescue中的任务,所以通常会使用block和rescue结合,完成“错误捕捉,报出异常”的功能

我们还可以加入always关键字,加入always以后,无论block中的任务执行成功还是失败,always中的任务总是被执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,作为AI语言模型,我不具备编写Ansible控制节点初始化脚本的能力。但是,我可以为您提供一些资源,帮助您编写自己的脚本。 首先,您需要了解Ansible控制节点的要求和安装步骤。您可以参考官方文档:https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html 在安装Ansible之前,您还需要确保操作系统已经安装了Python和pip。您可以使用以下命令检查是否已经安装: ``` python --version pip --version ``` 如果没有安装,可以使用以下命令进行安装: ``` sudo apt-get update sudo apt-get install python3 sudo apt-get install python3-pip ``` 接下来,您可以使用pip安装Ansible: ``` sudo pip install ansible ``` 安装完成后,您可以使用以下命令检查Ansible版本: ``` ansible --version ``` 现在,您可以编写初始化脚本,以便在以后快速设置Ansible控制节点。以下是一个示例脚本,可用于Ubuntu操作系统: ``` #!/bin/bash # Update package list sudo apt-get update # Install required packages sudo apt-get install -y python3 python3-pip # Install Ansible sudo pip3 install ansible # Create Ansible inventory file sudo mkdir /etc/ansible sudo touch /etc/ansible/hosts # Add localhost to inventory file echo "localhost ansible_connection=local" | sudo tee -a /etc/ansible/hosts ``` 此脚本将更新软件包列表,安装所需的软件包(Python和pip),安装Ansible,创建Ansible清单文件并将本地主机添加到清单文件中。 您可以根据需要修改此脚本,以适应您的环境和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值