ansible用法详解

yum install -y ansible安装

被控制主机信息添加到/etc/ansible/hosts

可以分组添加

列:

[cheshi]
192.168.1.128

[ECScheshi]
10.142.130.9[1:3]                10.142.130.91到93

1、远程用ansible主机,在redhat5.5系统执行命令报错MODULE FAILURE。ansible 1.1.1.1 -m command -a 'pwd' 

      应该使用raw模块,就能正常执行ansible 1.1.1.1 -m raw -a 'pwd'   具体原因未知,没有深究

ansible主配置文件

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

 

20190123222447984.png

上图是以wang的身份登录, -k 是输入密码 -b是sudo到root执行,要执行成功,需要修改visudo文件如下图取消注释,不验证密码

20190123222811239.png

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

script模块执行脚本,如下图,本机执行脚本,远程主机也可以执行

20190123232512336.png

 

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

下图命令在目标端创建f3的文件,name后面跟目标主机创建文件的路径,也可以写成dest=或者path。state是创建动作。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

下图为:删除刚创建的文件。state的动作是absent

20190211152358806.png

下图为创建文件夹,statee动作directory

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

 

下图为创建软连接,src指定要创建软连接的文件  dest或name或path 指定软连接的文件名,state动作link

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

下图为注释掉计划任务例子

20190211163303476.png

下图为,取消计任务 得注释

20190211163518125.png

 

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MzEyNDk2,size_16,color_FFFFFF,t_70

 

### Ansible Roles详解 #### 角色结构 Ansible Roles的结构化设计是其核心特性之一。通过将变量、任务、模板、文件和处理器等组件分别存放在特定的目录中,Roles实现了对Playbook的模块化管理。标准的Roles目录结构如下: - **defaults/**: 存放角色的默认变量文件,这些变量通常具有较低的优先级。 - **vars/**: 存放角色的其他变量文件,这些变量具有较高的优先级。 - **tasks/**: 存放角色的主要任务列表,通常以`main.yml`文件定义。 - **handlers/**: 存放角色的任务处理程序,同样以`main.yml`文件定义。 - **templates/**: 存放Jinja2模板文件,用于生成配置文件。 - **files/**: 存放需要传输到目标主机的静态文件。 - **meta/**: 存放角色的元数据信息,如依赖关系等,通常以`main.yml`文件定义。 - **library/**: 存放角色所需的自定义模块(如果使用Ansible版本支持的话)。 #### 使用方法 在Playbook中使用Roles非常简单,只需要通过`include`指令引用相应的角色即可。以下是一个简单的示例: ```yaml - hosts: all roles: - role: webserver http_port: 80 https_port: 443 ``` 在这个例子中,`webserver`是一个预定义的角色,`http_port`和`https_port`是传递给该角色的变量。通过这种方式,可以在Playbook中轻松地复用和组合多个角色。 #### 实践指南 1. **创建角色**:使用`ansible-galaxy`命令创建一个新的角色。例如,`ansible-galaxy init myrole`将创建一个名为`myrole`的新角色,并生成标准的目录结构。 2. **编写任务**:在`tasks/main.yml`文件中编写具体的任务列表。这些任务可以调用Ansible模块来执行各种操作。 3. **定义变量**:在`vars/main.yml`或`defaults/main.yml`文件中定义角色所需的变量。`vars`中的变量优先级高于`defaults`。 4. **使用模板和文件**:将Jinja2模板放在`templates/`目录中,静态文件放在`files/`目录中,以便在任务中引用。 5. **处理依赖关系**:在`meta/main.yml`文件中定义角色的依赖关系,确保所需的角色在当前角色之前被加载。 6. **测试角色**:通过编写简单的Playbook来测试角色的功能,确保所有任务按预期执行。 7. **发布角色**:如果需要共享角色,可以使用`ansible-galaxy`命令将其上传到Ansible Galaxy网站,供其他用户下载和使用。 通过遵循上述指南,可以有效地利用Ansible Roles来组织和管理复杂的自动化任务,提高代码的复用性和可维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比尔盖樊先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值