Ansible的几个基本语句

如约签约了新东家,环境很不错,同事人都很随和,领导也很好说话,加班福利很赞,总而言之,好好工作,多多挣钱。

批处理工具我最早接触的是pssh,因为它实在很简单粗暴,但是它由于太简单粗暴了,应付十台二十台机器还OK,应付五十台一百台服务器就心有余力不足了,而且我还不太喜欢puppet,总觉得那玩意跟我八字不合,于是乎,在新头头的推荐下,我把目光放在了Ansible。

Ansible的安装很简单,在Redhat环境下直接#yum install ansible -y就行。Redhat已经将Ansible公司收购了,所以在安装上提供了不小的便利。

Ansible在安装完毕之后,会在/etc/ansible/目录下看见一个叫hosts的文件,这里是所有你要控制的服务器的ip们,可以排列写,比如:

192.168.1.122

192.168.1.133

192.168.1.144

也可以分组写,比如:

[aliyun]

10.22.33.44

10.22.33.45

[jinshanyun]

121.23.45.66

121.23.45.67

默认情况下,Ansible会把命令全用于这个hosts文件,比如

#ansible all -m ping 192.168.1.134 -u ashin

这句话意思是整个hosts里的机器以ashin账户启动,而且都要ping 192.168.1.134。

怎么连接主机与要控制的远程机器以后再说,这里先说几个命令语句:

1)#ansible all -m shell -a "/bin/echo hello"

2)#ansible all -m copy -a "src=~/projects/tests/t.py dest=~"

3)#ansible all -m file -a "dest=~/tests state=absent"

4)#ansible webservers -m copy -a ‘dest=/root/ src=/root/xl2pdf‘

5)#ansible v1 -m service -a "name=mysql state=started" --sudo -K

6)#ansible all -m user -a "name=foo password=foo" --sudo -K

7)#ansible v1 -m apt -a "name=git state=latest"

时间: 2024-09-29 22:10:46

Ansible的几个基本语句的相关文章

Ansible之Playbooks的when语句

在使用ansible做自动化运维的时候,大多数情况下都执行某些任务的时候都需要依赖某个变量的值或者是上一个任务的执行结果.如,根据facts信息中的系统版本相关的信息来确定使用哪种包管理器安装软件.Ansible提供when语句,可以控制任务的执行流程. 一个很简单的when语句的例子: 1 2 3 4     tasks:       - name: "shutdown Debian flavored systems"         command: /sbin/shutdown 

Ansible Playbook 使用条件判断语句

先介绍一下 gather_facts 参数,该参数用于指定在执行任务前,是否先执行 setup 模块获取主机相关信息,以便给后面的任务使用 [[email protected] ~]# ansible 192.168.119.134 -m setup # 查看主机的facter信息 192.168.119.134 | SUCCESS => { "ansible_facts": { "ansible_all_ipv4_addresses": [ "19

Ansible 自动化运维工具之when条件语句

1.When语句 有时候用户有可能需要某一个主机越过某一个特定的步骤.这个过程就可以简单的像在某一个特定版本的系统上少装了一个包一样或者像在一个满了的文件系统上执行清理操作一样. 这些操作在Ansible上,若使用`when`语句都异常简单.When语句也含Jinja2表达式, 第一个例子: tasks:   - name: "shutdown Debian flavored systems"     command: /sbin/shutdown -t now     when: a

ansible 系列教程

ansible 核心组件介绍 Architecture Diagram ansible core host iventory core modules custom modules playbook (yaml) connetc plugin  ansibles 的特性 基于python语言实现,有paramiko,Pyyaml和jinjia2 三个关键模块 部署简单,agegtlees,默认使用SSH协议 基于密钥认证 在inventory 文件中指定账号和密码 支持playbook基于"模块

Ansible 流程控制

8.判断语句 1.centos和ubuntu系统都需要安装httpd, 判断系统. 2.安装软件仓库,只有web组的安装webtatic其他的主机全部跳过. 3.TASK任务, TASK1任务执行成功,才会执行TASK2 #根据不同的系统,安装不同的服务 - hosts: webservers tasks: - name: CentOS Installed Httpd Server yum: name: httpd state: present when: ( ansible_distribut

MySQL数据库常见存储引擎(一)

熟悉mysql数据库的朋友,肯定会喜欢mysql强大的插件式存储引擎,能够支持太多存储引擎,当目前的存储引擎不能满足你的需求时,你可以根据自己的需求选择合适的引擎,将相关的文件拷贝到相关路径,甚至不需要重启数据库,就可以使用.真的很强大. 1 常见存储引擎memory存储引擎  硬盘上存储表结构信息,格式为.frm,数据存储在内存中    不支持blob text等格式    创建表结构,    支持表锁    支持B树索引和哈希索引    支持数据缓存 数据 缓存    插入速度快    分配

自动化运维工具Ansible之Playbooks循环语句

在使用ansible做自动化运维的时候,免不了的要重复执行某些操作,如:添加几个用户,创建几个MySQL用户并为之赋予权限,操作某个目录下所有文件等等.好在playbooks支持循环语句,可以使得某些需求很容易而且很规范的实现. with_items是playbooks中最基本也是最常用的循环语句. - name: add several users   user: name={{ item }} state=present groups=wheel   with_items:      - t

Ansible之 模板,条件测试,循环语句 使用

1  概述 本文将结合例子介绍模块,条件测试和循环语句的使用 2  模板 模块和模板的区别,template模块是将模板文件里的变量以实际的值重新生成后文件后,复制到远程主机上 模块:template 基于模板(以后缀.j2结尾的文件)方式生成一个文件复制到远程主机,调用ansible的收集到的内建变量,变量的嵌入代码的标志是双花括号 *src= *dest= owner= group= mode= 模板:templates 文本文件,嵌套有脚本(使用模板编程语言Jinja2编写) 字面量: 字

Ansible Playbook 使用循环语句

如下,with_items 是循环的对象,with_items 是 python list 数据结构,task 会循环读取 list 里面的值,key 的名称是 item [[email protected] ~]$ cat while.yml --- - hosts: 192.168.119.134 user: root tasks: - name: touch file file: path=/tmp/{{ item }} state=touch mode=600 with_items: -