Ansible
介绍
基本使用
本文档使用 MrDoc 发布
-
+
首页
基本使用
### 工作目录 配置文件目录:`/etc/ansible` 执行文件目录:`/usr/bin` Lib库依赖目录:`/usr/lib/pythonX.X/site-packages/ansible` Help文档目录:`/usr/share/doc/ansible-X.X.` Man文档目录:`/usr/share/man/man1` 主配置文件: `/etc/ansible/ansible.cfg` ### 主配置文件参数 ```asp inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置 library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用:隔开就可以 forks = 5 #并发连接数,默认为5 sudo_user = root #设置默认执行命令的用户 remote_port = 22 #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全 host_key_checking = False #设置是否检查SSH主机的密钥值为True/False关闭后第一次连接不会提示配置实例 timeout = 60 #设置SSH连接的超时时间,单位为秒 log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志) ``` ### 部署 #### 下载阿里云yum源 ```asp curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` #### 安装epel源 ```asp yum -y install epel-release ``` #### 安装ansible ```asp yum -y install ansible ``` #### 获取指定模块的使用帮助(-s 简短说明) ```asp ansible-doc -s MOD_NAME ``` ### 获取全部模块的信息 ```asp ansible-doc -l ``` ### 获取指定模块的使用帮助(-s 简短说明) ```asp ansible-doc -s MOD_NAME ``` ### 公钥私钥生成分配 #### 生成私钥 ```asp ssh-keygen ``` #### 向主机分发私钥 ```asp ssh-copy-id root@192.168.0.* ``` ### 创建主机列表 #### 修改主机列表文件,添加主机清单和IP ```asp vim /etc/ansible/hosts ``` ```asp [weblist] 192.168.0.11 192.168.0.12 [dblist] 192.168.0.11 192.168.0.13 [alllist] 192.168.0.1[1:3] ``` #### 查看单个列表包含的主机 ```asp ansible weblist --list ``` ```asp hosts (2): 192.168.0.11 192.168.0.12 ``` ### command(缺省) #### 查看all主机根目录 ```asp ansible all -m command -a 'ls /' ``` ### ping(all是所有列表主机) ```asp ansible all -m ping ``` ### shell (支持管道通配符) #### 修改root密码1 ```asp ansible all -m shell -a 'echo root:hehe | chpasswd' ``` ### copy推送本地文件到所有主机 ```asp ansible all -m copy -a 'src=/root/vsftpd-3.0.2-25.el7.x86_64.rpm dest=/root' ``` ### fetch拉取所有主机的文件,目录无效 ```asp ansible all -m fetch -a 'src=/etc/shadow dest=/data' ``` ### chdir先切换到/data/ 目录,再执行“ls”命令 ```asp ansible all -m command -a 'chdir=/data/ ls' ``` ### creates(可做判断存在)如果/data/aaa.jpg存在,则不执行“ls”命令 ```asp ansible all -m command -a 'creates=/data/aaa.jpg ls' ``` ### removes(可做判断不存在)如果/data/aaa.jpg存在,则执行“cat /data/a”命令 ```asp ansible all -m command -a 'removes=/data/aaa.jpg cat /data/a' ``` ### file(name=path) #### 创建软连接 ```asp ansible all -m file -a 'src=/etc/fstab dest=/data/festab.link state=link' ``` #### 创建目录 ```asp ansible all -m file -a 'name=/data state=directory' ``` #### 创建文件 ```asp ansible all -m file -a 'path=/data/a.txt state=touch' ``` #### 删除 ```asp ansible all -m file -a 'path=/data/a.txt state=absent' ``` ### hostname(hosts解析不会修改)修改主机名 ```asp ansible 192.168.0.11 -m hostname -a 'name=node1' ``` ### cron (crontab文件中的语法一致) #### 创建计划任务(job指定具体操作,name起一个名称) ```asp ansible all -m cron -a 'minute=* job="/usr/bin/wall !!!" name=crontab' ``` #### 暂停计划任务 ```asp ansible all -m cron -a 'disabled=true job="/usr/bin/wall worning!!!" name=crontab' ``` #### 启动计划任务 ```asp ansible all -m cron -a 'disabled=false job="/usr/bin/wall worning!!!" name=crontab' ``` #### 删除计划任务 ```asp ansible all -m cron -a 'name=warningcron state=absent' ``` ### yum #### 将主控机yum主配置文件上传至所有主机 ```asp ansible all -m shell -a 'rm -rf /etc/yum.repos.d/*' ``` #### 将主控机的本地yum配置文件推送到所有主机 ```asp ansible all -m copy -a 'src=/etc/yum.repos.d/local.repo dest=/etc/yum.repos.d/' ``` #### 查看所有已安装包 ```asp ansible all -m yum -a 'list=installed' ``` #### 查看单个安装包是否安装 ```asp ansible all -m shell -a 'rpm -q httpd' ``` #### 安装httpd和DHCP ```asp ansible all -m yum -a 'name=httpd,dhcp' ``` #### 卸载httpd和DHCP ```asp ansible all -m yum -a 'name=httpd,dhcp state=absent' ``` ### yum安装非仓库的本地包 #### 停止服务并关机开机自启 ```asp ansible all -m service -a 'name=httpd state=stopped enabled=no' ``` #### 将主控机上的本地安装包推送到所有主机 ```asp ansible all -m copy -a 'src=/root/vsftpd-3.0.*.rpm dest=/root' ``` #### 选择安装包所在路径直接安装,忽略check检查 ```asp ansible all -m yum -a 'name=/root/vsftpd-3.0.*.rpm disable_gpg_check=yes' ``` #### 启动服务并设置开机自启 ```asp ansible all -m service -a 'name=httpd state=started enabled=yes' ``` #### 重启服务 ```asp ansible all -m service -a 'name=httpd state=restarted' ```
done
2024年8月7日 12:44
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码