Ansible

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、Ansible是什么?

ansible可以作为批量管理工具

二、使用步骤

1.基本配置

代码如下(示例):

进入/etc/ansible/hosts配置主机清单

test1 ansible_host=192.168.2.5 ansible_port=22 ansible_user=root ansible_ssh_pass=123

别名    主机名            端口         用户名         密码

test 主机名(all,别名) -m ping 测试连通性

配置密钥连接

ssh-keygen    生存密钥

# ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.1.1.60    

将指定的公钥交给10.1.1.60的root用户

test1 ansible_host=192.168.2.5 ansible_port=22

all:

   children:

       pro:

           children:

                pro1:

                   hosts:

                       10.1.2.[10:80]

                pro2:

                   hosts:

                       10.1.3.[10:80]

       doe:

           hosts:

               126.25.1.[10:90]

            

all:总组名

children:子组

2.模块

代码如下(示例):

参数

src:   源文件

dest:   目的目录文件

force:  强制执行

backup:  备份,设置为yes,先备份,在执行操作

owner:  拷贝分件后的所属主,远程文件必要存在所属主

group:  拷贝分件后的所属组,远程文件必要存在所属组

mode:   拷贝分件后的权限,设置rw-r--r--,可0644,  user  可 u+x

recurse:递归修改目录文件的属性

paths:指定操作的文件或目录

格式:ansible 主机名 -m 模块 -a "[src,path=] dest=.........."

copy模块:

content: 特定文件内容

从远程主机中拉取文件

ansible test10 -m copy -a 'content="aaa\nbbb\n" dest=/opt/test'

ansible test10 -m copy -a "src=/testdir/copytest dest=/opt/ force=no"

file模块:

创建文件或目录、删除文件或目录、修改文件权限

state:dirctory 创建目录

            touch  创建文件

            hard硬链接   link 软链接

ansible test10 -m file -a "path=/testdir/testdir state=directory"      若存在目录,不执行操作

ansible test10 -m file -a "path=/testdir/linkfile state=link src=sourcefile force=yes"

强制创建软链接

blockinfile模块

插入被标记的文本

block:文本

mark:插入自定义标记

ansible test10 -m blackinfile -a 'path=/test/test5 block="good\ngood" mark="{mark} 12345"

find模块

find_type:查找文件类型any、directory、file、link

patterns:指定查找的文件名,可使用正则表达式

contains:根据文件内容查找文件,正则表达式

age:根据时间

size:根据大小

ansible test10 -m find -a 'paths=/etc/ora/test10 find_type=file contains".*joy.*" recurse=yes'

replace模块

regexp:python正则表达式

ansible test10 -m replace -a 'path=/testdir/test regexp="ASM" replace=asm backup=yes'

service模块

name:操作服务的名称:nginx

sstate:服务状态started  stoped  restarted  reloaded

enabled  开启自启

ansible test10 -m service -a "name=nginx state=started"

command模块

在远程主机上执行命令

chdir:指定目录

creates:不存在就执行

removes:与creates相反

ansible test10 -m command -a "chdir=/testdir ls"

shell模块 

与command一样,但支持管道符和通配符

executable:指定shell执行命令,绝对路径

ansible test10 -m shell -a "chdir=/testdir echo test > test"

ansible test10 -m shell -a 'executable=/bin/csh @ TestNum=95 ; echo $TestNum > /testdir/TestNumFile'


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了ansible的学习

09-17
### 关于 Ansible 的下载安装与使用教程 #### 一、Ansible 基础概念 Ansible 是一种简单而强大的 IT 自动化工具,用于配置管理、应用程序部署以及任务编排。它的设计原则是基于无代理架构(Agentless),即不需要在被控节点上安装任何软件。 - **Inventory 文件**: 这是一个包含受控服务器信息的文件,默认路径位于 `/etc/ansible/hosts`[^1]。该文件定义了主机列表及其分组方式。 #### 二、Ansible 的安装方法 以下是 Ansible 在 Linux 和 macOS 上的标准安装步骤: 对于 Ubuntu 系统: ```bash sudo apt update sudo apt install software-properties-common sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible ``` 对于 CentOS/RHEL 系统: ```bash sudo yum install epel-release sudo yum install ansible ``` macOS 用户可以借助 Homebrew 工具完成安装: ```bash brew install ansible ``` 验证安装成功与否可以通过以下命令检查版本号: ```bash ansible --version ``` #### 三、Ansible 的基本用法 ##### 1. 执行 Ad-Hoc 命令 Ad-Hoc 模式允许用户快速向远程主机发送单条指令并获取反馈。例如,查看目标主机上的 `~` 目录结构时可执行如下命令[^2]: ```bash ansible webserver -i ~/.ansible/hosts -m command -a 'ls ~' -k ``` 其中 `-k` 参数表示提示输入 SSH 密码而非依赖密钥认证。 ##### 2. 配置 Inventory 文件 默认情况下,Ansible 使用 `/etc/ansible/hosts` 作为 inventory 文件位置。如果需要指定自定义路径,则可通过 `-i` 参数实现。例如: ```ini [webserver] 192.168.1.10 ansible_user=root ``` ##### 3. Playbooks 编写入门 Playbook 是一组 YAML 格式的剧本脚本,用来描述一系列复杂操作序列。下面是一份最简化的 playbook 示例[^4]: ```yaml --- - name: Update all servers and reboot them hosts: webservers become: yes tasks: - name: Ensure system is up to date package: name: "*" state: latest - name: Reboot server after updates are installed reboot: ``` #### 四、跨平台支持——Windows 环境下的 Ansible 应用 尽管传统意义上 Ansible 更倾向于 Unix/Linux 平台的操作,但它同样具备良好的 Windows 支持能力。这主要得益于由社区开发者 jborean93 维护的一套专门针对 Microsoft 技术栈优化过的插件集合[^3]。这些组件让运维人员得以利用 PowerShell 脚本或者 WinRM 协议无缝衔接至企业内部混合云场景之中。 #### 五、容器集成解决方案-Ansible Bender 随着 DevOps 文化日益普及,越来越多的企业开始关注 CI/CD 流程中的镜像构建环节。为此官方推荐了一款名为 "Ansible Bender" 的第三方扩展程序[^5]。它允许使用者仅需编写一份声明性的 YAML 描述文档就能全自动完成 Dockerfile 替代工作流的设计思路。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值