服务器管理工具

tech2025-05-15  14

Ansible远程管理工具,记个笔记,搭建部署过程和一些模块使用

Ansible需要python支持,直接二进制安装配置

Ansible首先配置密钥连接需要管理的主机

 

之后将密钥分发给其他被管理机器

下一步二进制安装的目录在/etc/ansible/hosts下,编辑添加需要管理的机器ip

 

 

添加后可以使用ansible命令测试

到此可以使用模块进行配置,另外可以使用playbook剧本进行批量执行操作

ansible­playbook “playbook”.yml ­­--list-­hosts 检查ansibleplaybook会影响到哪些hosts

ansible 命令总结

1. Ad-HOC: 适合临时执行任务 2. Playbook: 适合一些复杂的部署和配置环境

一 、 Ad-HOC: 适合临时执行任务 ansible-doc -l 查看ansible的可用模块

1.pnig 检查是否能联通

2.yum 选项:name 安装包名字 state 可以写一些安装或者卸载的命令 例子 ansible webservers -m yum -a 'name=httpd state=latest/absent'

3.command ansible的默认模块 可以实现一些系统命令 例子 ansible webservers -m command -a 'echo 123 '\

4.shell 类似command模块 但是支持shell命令的使用 && | 例子 ansible webservers -m shell -a 'cd /root && mkdir 123 '

5.service 选项:name 服务名字 state started(启动)/stopped(停止)/reloaded(重载) enabled 默认为no,可以管理服务的开机自启 例子 ansible webservers -m service -a 'name=httpd state=started enabled=yes' 6.file 选项:group(用来定义文件/目录的属组) mode(用来定义文件/目录的权限) owner(用来定义文件/属组的属主) *path(用来定义文件/目录的路径) src(要被链接的源文件的路径) dest(被链接到的路径) state: directory(创建目录) file/touch(创建文件) link(创建软连接) hard(创建硬链接) absent(删除文件/目录/取消链接文件) 例子 ansible webservers -m file -a 'path=/root/mulu/wenjian.txt state=touch'

7.user 选项:home(创建家目录) groups(指定用户组) uid(指定UID) password(设置密码,密码必须是密文,可以用openssl passwd设置密文密码) name(创建用户名) state(可写可不写,默认是创建,absent是删除) remove(删除用户家目录,可写可不写) 例子 ansible webservers -m user -a 'name=tom state=present'

8.group 选项:gid(指定的gid) name(指定用户名) state(删除还是创建 absent/present) 不常用可不写

9.copy 选项:src(ansible主机的相对路径) dest(复制到ansible管理的主机的相对路径) backup(是否备份默认为no) mode(授权) 例子 ansible webservers -m copy -a 'src=/root/index.html dest=/opt/'

10.unarchive 选项:copy(再解压之前将压缩包复制到远程主机,默认为yes,若为no,目标主机必须要有压缩包,可写可不写) creates(指定一个文件名,当该文件存在时,则解压指令不执行,可写可不写) dest(目标主机文件解压的绝对路径) src(解压包的源路径) group(解压后的目录或文件的属组) mode(解压后文件或目录的权限) owner(解压后文件或目录的属主) 例子 ansible webservers -m unarchive -a 'src=/root/123.tar.gz dest=/root/ mode=777'

11.get_url 选项:url(指定下载的url地址) dest(下载到目标主机的绝对路径) 例子 ansible webservers -m get_url -a 'url=http://baidu.com/123.tar.gz dest=/root/'

12.fetch 选项:src(远程系统上要获取的文件。 这必须是一个文件,而不是一个目录。) dest(保存文件的目录) 例子 ansible webservers -m fetch -a 'src=/opt dest=/root/index.html' (跟copy是相反的)

13.setup 选项:filter(用于进行条件过滤,可以根据一些命令来获取远程主机的基本信息) 关键词: ansible_all_ipv4_addresses (显示ipv4的信息) ansible_devices (显示磁盘设备的信息) ansible_distribution (显示系统) ansible_distribution_major_version (显示系统主版本) ansible_distribution_version (显示系统版本) ansible_eth0 (显示eth0的信息) ansible_hostname (显示主机名) ansible_processor (显示具体cpu个数) ansible_python_version (显示python版本)  例子 ansible webservers -m setup -a 'filter=ansible_all_ipv4_addresses'

二 、 playbook的编写 核心元素: hosts (主机组(webservers~~等)) vars (定义变量) tasks (执行的任务) name (任务的描述) template (引用模板文件) tags (标签,配合handlers用) handlers (定义触发动作) 循环变量: with_items when

 

 

最新回复(0)