好用的网站管理系统,成都 企业网站建设,门户网站应该怎么做,wordpress主题标签关键词ansible
1.概述 ansible是基于python语言开发#xff0c;配置管理和部署应用的工具。批量的配置#xff0c;部署#xff0c;管理“上千台”主机 #xff08;实际一次100台左右#xff09;#xff0c;ansible只要在一台主机上就可以对其他主机进行操作。
#xff08;1配置管理和部署应用的工具。批量的配置部署管理“上千台”主机 实际一次100台左右ansible只要在一台主机上就可以对其他主机进行操作。
1功能
实现远程连接主机批量配置批量操作ansible可以对主机进行组划分也可以把名下所有的主机进行划分进行批量操作远程自动化运维脚本---playbook
2ansible的工作模式 没有固定的客户端不是C/S 使用模块来进行工作ansible有很多模块copy shell... 真正在主机上执行任务的是模块。
3ansible的特性 幂等性计算机中的概念在幂等操作中无论执行多少次结果都是一样的多次执行相同的操作不会产生不同的结果。 在ansible中如果操作符合幂等性那么不会对目标主机产生额外的副作用。
4ansible的组件 lnventory 主机清单 主机组 modules 模块* plugins 插件 playbook 剧本脚本*
5ansible的优缺点 优点部署快只要能上网或者有源码包安装部署很简单基于yaml格式编写的脚本同一台服务器上多次执行同一个任务没有任何副作用。 缺点语法要专门学主机和控制主机必须都是linux至少有两台服务器主机和server。
2.安装 #安装ansible (ubuntu系统) apt -y install ansible #在主机192.168.206.30上安装 #免密登录 ssh-keygen -t rsa apt -y install sshpass sshpass -p 1 ssh-copy-id root192.168.206.50 #-p 登录密码 sshpass -p 1 ssh-copy-id root192.168.206.55 #配置文件 mkdir /etc/ansible cd /etc/ansible vim hosts [web] 192.168.206.50 [web1] 192.168.206.55 #主机50在web组主机55在web1组 #如果不想要设置免密登录可以手动创建ansible.cfg vim ansible.cfg [defaults] host_key_checking False #禁止使用ssh的秘钥检查 inventory/etc/ansible/hosts #指定主机清单的文件 forks 20 #同时可以对多少主机进行配置默认是5可以提高执行速度 pipelining True #减少对ssh会话中的操作提高性能 strategy free #任务会立即对下一个主机并行执行不用等待其他主机完成 retry_files_enabled False #如果任务失败禁用自动重试的功能 vim hosts [web] 192.168.206.5[0:9] #表示50,51,52,53...59 [all:vars] #组内所有主机统一用root登录登录密码为1端口为22 ansible_userroot ansible_password1 ansible_port22 #如果是centos系统yum -y install ansible之后在/etc/ansible下有配置文件 直接修改即可 vim /etc/ansible/ansible.cfg #71行取消注释 host_key_checking False vim hosts [web] 192.168.206.5[0:9] #表示50,51,52,53...59 [all:vars] #组内所有主机统一用root登录登录密码为1端口为22 ansible_userroot ansible_password1 ansible_port22 3.ansible模块 command模块 就是在目标主机执行命令不支持管道符也不能使用重定向。----默认模块 ansible all -m command -a chdir/opt tar -xf nginx-1.22.tar.gz ansible 固定开头 all:组名ip,all, 声明操作的对象 -m 指定模块 command 就是模块名 -a 指定参数(指定操作) chdir/opt tar -xf nginx-1.22.tar.gz: 具体要执行的命令 chdir/opt 声明目标主机的目录 creates 判断指定的文件是否存在如果存在不执行后续的操作 removes 判断指定的文件是否存在如果存在执行后续的操作 shell模块 是command模块的升级但是可以使用管道符可以重定向还可以使用连接符链接多个命令。 可以用 或者 ; 连接多条命令 cron模块 分、时、日、月、周 minute/hour/day/month/weekday -m cron name 计划任务的名称 不是必须的 job 计划执行的命令 state: present 表示添加默认就是添加可以不写 absent 表示移除 user和group -m user -m group name 用户名或者组名 必有参数 statepresent/absent 创建/删除 uid 数字 gid 数字 shell 默认就是/bin/bash create_home yes/no 是否替换用户的家目录 removeyes/no 删除用户时是否删除家目录 password 创建用户的登录密码 system yes/no 表示用户是否是系统用户 copy模块 dest: 文件复制到目标主机的位置 src: 源文件主机的文件 ---目标主机 mode: 修改目标文件权限 owner: 文件的所有者 group: 文件的所在组 content: 复制输出的内容到目标主机使用content就不能使用src 如果复制目录源文件的路径是目录目标主机的路径也必须是目录才可以复制 file模块 和copy有相似之处 mode: 修改目标文件权限 owner: 文件的所有者 group: 文件的所在组 path---- 目标主机的文件路径 state: link 做软连接 touch 创建 absent 删除 #特殊情况下才会有src src ---- 指定创建的文件为软连接 hostname和ping hostname 设置目标主机的主机名 ping 测试目标主机的连通性 yum/apt模块---安装和卸载 ansible web -m apt -a namenginx #安装 ansible web -m apt -a namenginx stateabsent #删除 ansible web -m shell -a apt -y install nignx #安装用shell模块也可以 service模块 也可以用command或者shell模块---相当于systemctl 对服务的状态进行控制 name软件名 enabledtrue---开机自启 state: started/stopped/restarted 开/停/重启 runlevel40 设定开机自启的运行级别数字越大优先级越高 #ubuntu安装软件完毕自启cnetos要设置开机自启 iptables模块 iptables模块 -- 支持centos和ubuntu firewalld -- 仅支持centos script模块 指定本地的脚本然后脚本中的命令在目标主机执行结果也是输出到目标主机。 创建完脚本后要赋权 setup 模块 收集节点信息查看目标主机的配置信息 通过facts组件收集 filter是过滤不加filter就显示全部