当前位置: 首页 > news >正文

重庆市建设工程信息网官方网站平台网站是什么

重庆市建设工程信息网官方网站,平台网站是什么,如何自己开发一个软件,diy wordpress目录 前言 一、环境概况 修改主机名#xff08;可选项#xff09; 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Se… 目录 前言 一、环境概况 修改主机名可选项 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Service和System模块 Setup 模块 四、playbook 前言 1.ansible-playbook介绍 2.playbook yml文件格式介绍 playbook实例 1.在目标主机上安装docker使用docker部署nginx 前言 Ansible 是一种开源的自动化工具用于配置管理、应用程序部署和任务自动化。它采用简单易懂的 YAML 语法和基于 SSH 协议的远程执行能够实现快速、可靠的自动化配置和部署。 Ansible 的一些主要特点和功能 简单易用: Ansible 使用 YAML 格式的声明性语言使得编写和阅读 PlaybooksAnsible 的配置文件变得非常直观和易于理解。无需编写复杂的脚本或程序代码就可以完成大部分配置和部署任务。 无代理架构: Ansible 采用基于 SSH 的无代理架构不需要在目标主机上安装任何额外的代理或客户端软件。这简化了部署和管理过程并提供了更强的安全性。 模块化: Ansible 提供了丰富的模块库用于执行各种操作如包管理、文件操作、服务管理、用户管理等。模块化的设计使得用户可以轻松地扩展和定制 Ansible以满足特定的自动化需求。 剧本化: Ansible 使用 Playbooks 来描述配置和部署任务。Playbooks 是用 YAML 编写的文本文件可以定义一系列任务和主机组以及执行这些任务的顺序和条件。这使得用户可以将复杂的配置和部署过程分解为可管理的、可重用的剧本。 多平台支持: Ansible 可以在多种操作系统和云平台上运行包括 Linux、Windows、macOS、VMware、AWS、Azure、Google Cloud 等。这使得 Ansible 成为一个通用的自动化工具可用于管理多样化的 IT 环境。 可扩展性: Ansible 可以集成到现有的工具链和流程中并与其他自动化和编排工具如 Jenkins、Kubernetes进行集成。此外Ansible 还具有丰富的插件和扩展机制可以根据需要进行功能定制和扩展。 一、环境概况 192.168.159.128   ------------ Ansible服务端管理端     192.168.159.129   ------------ 客户端受控端 修改主机名可选项 修改Ansible服务端的主机名客户端不修改 hostnamectl set-hostname ansible.serverhostname ansible.serverreboot后永久生效 二、安装部署 1.安装epel扩展源 yum install -y epel-release 2.安装Ansible  yum install -y ansible 3.修改Ansible的hosts文件 cd /etc/ansible/ tree . ├── ansible.cfg #ansible的配置文件默认即可 ├── hosts #ansible的主机清单用于存储需要管理的远程主机的相关信息需要编辑 └── roles/ #公共角色目录默认即可 vim hosts#webservses行取消注释添加被控端IP [webservers] ## alpha.example.org ## beta.example.org 192.168.159.129 ## 192.168.1.1104.生成密钥 Ansible 的工作原理是通过 SSH 连接到远程主机在目标主机上执行预定义的任务或命令所以需要配置免密  ssh-keygenssh-copy-id root192.168.159.129 三、Ansible模块使用介绍 现在开始ansible就已经可以开始使用了  查看Ansible版本 [rootansible ansible]# ansible --version ansible 2.9.27config file /etc/ansible/ansible.cfgconfigured module search path [u/root/.ansible/plugins/modules, u/usr/share/ansible/plugins/modules]ansible python module location /usr/lib/python2.7/site-packages/ansibleexecutable location /usr/bin/ansiblepython version 2.7.5 (default, Jun 20 2023, 11:36:40) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] [rootansible ansible]#查看ping和telnet 模块的简要描述和摘要 ansible-doc -s ping ansible-doc -s telnet用于查看有关 telnet 模块的文档类似于man手册 ansible-doc telnet Command模块 格式 ansible hosts -m command -a command ansible webservers -m command -a free -h ansible 192.168.159.129 -m command -a free -h ansible all -m command -a free -h ansible webservers -a uname -ahosts可以使用以上三种方式指定 webservershosts配置文件中的【webservers】组执行某些命令实际IP指定IP运行某些命令all代表所有hosts主机包含hosts配置文件中的【dbservers】组 Shell模块 格式 ansible hosts -m shell -a command ansible all -m shell -a for i in {1..5}; do touch \$i.txt;done ls -la *.txt 1.上述示例当中的touch命令部分为什么在$符号前面要加上转义符 ansible webservers -m shell -a df -hT|grep /$ | awk {print $6}ansible webservers -m shell -a df -hT|grep /$ | awk {print \$6} 2.上述示例当中的awk命令部分为什么在$符号前面要加上转义符 解释为了确保 $6 不被解释为命令行变量而是作为字符串的一部分传递给远程主机执行需要使用转义符 \ 进行转义。\$6 的目的是将 $6 这个字符串传递给远程主机而不被本地 Shell 解释为变量 所以正确写法是这样的 ansible all -m shell -a for i in {129,130}; do ping -c 1 192.168.159.\$i; done 错误写法示范 User模块 格式 ansible hosts -m user -a options hosts 指定要管理用户的目标主机可以是单个主机或者主机组的名称。 -m user 通过 -m 参数指定要使用的模块为 user。 -a options 使用 -a 参数传递模块的选项。选项可以是创建用户、修改用户属性或删除用户等操作。user 模块的常用选项包括name 指定用户的名称。password 指定用户的密码已加密。state 指定用户的状态present表示创建absent表示删除。groups 指定用户所属的组。shell 指定用户的登录 Shell。systemyes|no 是否为系统账号。uid 用户uidmove_homeyse|no如果设置的家目录已经存在是否将已经存在的家目录进行移动password 用户的密码建议使用加密后的字符串comment 用户的注释信息removeyes|no 当stateabsent时是否删除用户的家目录comment 指定用户的注释信息。 ansible webservers -m user -a namewang statepresent password123456 groupsroot shell/sbin/nologin ansible webservers -m command -a grep wang /etc/shadowCopy模块 格式 ansible hosts -m copy -a options hosts: 指定要复制文件的目标主机可以是单个主机或者主机组的名称。 -m copy: 通过 -m 参数指定要使用的模块为 copy。 -a options: 使用 -a 参数传递模块的选项。选项包括源文件路径、目标文件路径、权限等。copy 模块的常用选项包括src 指定源文件或目录的路径。可以是绝对路径或相对路径。dest 指定目标文件或目录的路径。可以是绝对路径或相对路径。mode 指定目标文件的权限模式例如 0644。owner 指定目标文件的所有者。group 指定目标文件的所属组。backup 指定是否创建备份文件。force 指定是否强制复制即使目标文件已经存在。ansible webservers -m copy -a src/root/shdir/xin.sh dest/root/xin_bak.sh ownerroot grouproot mode777 ansible webservers -m shell -a bash /root/xin_bak.shFile模块 格式 ansible hosts -m file -a options hosts: 指定要操作文件的目标主机可以是单个主机或主机组的名称。 -m file: 通过 -m 参数指定要使用的模块为 file。 -a options: 使用 -a 参数传递模块的选项。选项包括要操作的文件路径、属性变更等。file 模块的常用选项包括path 指定要操作的文件或目录的路径。可以是绝对路径或相对路径。mode 指定文件的权限模式例如 0644。owner 指定文件的所有者。group 指定文件的所属组。state 指定文件的状态可以是 file文件存在、directory目录存在或 absent文件不存在。recurse 指定是否递归地应用更改到目录及其子目录。follow 指定是否跟随符号链接进行更改。ansible webservers -m file -a path/root/xin_bak.sh ownerroot grouproot mode755 statefile ansible webservers -m command -a ls -la /root/xin_bak.shHostname模块 格式 ansible hosts -m copy -a options ansible webservers -m hostname -a nametest ansible webservers -m command -a hostname        Yum模块 格式 ansible hosts -m yum -a namepackage_name statestate hosts: 指定要操作文件的目标主机可以是单个主机或主机组的名称。 -m file: 通过 -m 参数指定要使用的模块为 file。 -a options: 使用 -a 参数传递模块的选项。选项包括要操作的文件路径、属性变更等。yum 模块的常用选项包括name 要安装的包的名字state present安装、absent卸载或 latest更新为最新版本。update_cache: 是否刷新 YUM 缓存。默认情况下为 yes表示会自动更新缓存。设置为 no 则不刷新缓存。 disable_gpg_check: 是否禁用 GPG 检查。默认为 no表示会进行 GPG 检查。设置为 yes 则禁用 GPG 检查。enablerepo 和 disablerepo: 控制仓库的启用和禁用。可以指定要启用或禁用的仓库名称。多个仓库以逗 号分隔。installroot: 指定要安装软件包的根目录路径。conf_file: 指定要使用的 YUM 配置文件路径。vars: 用于传递额外的变量给 Ansible。 ansible webservers -m yum -a namednsmasq statepresent ansible webservers -m shell -a systemctl restart dnsmasq systemctl enable dnsmasq systemctl status dnsmasq Service和System模块 格式 ansible hosts -m service -a nameservice name enabledyes/no statestate hosts: 指定要操作文件的目标主机可以是单个主机或主机组的名称。 -m file: 通过 -m 参数指定要使用的模块为 file。 -a options: 使用 -a 参数传递模块的选项。选项包括要操作的文件路径、属性变更等。service 模块的常用选项包括name: 服务名称state: 服务状态started|stopped|restartedenabled: 是否自启动yes|nopattern: 进程匹配模式.点 匹配任意单个字符。* 匹配前一个字符的零次或多次重复。 匹配前一个字符的一次或多次重复。? 匹配前一个字符的零次或一次重复。^ 匹配字符串的开始位置。$ 匹配字符串的结束位置。[] 用于定义字符集匹配其中的任意一个字符。() 创建捕获组用于分组匹配。sleep: 等待时间timeout: 超时时间runlevel: 运行级别args: 额外参数system 模块命令格式name: 项名称state: 系统状态value: 要设置的值started|stopped|restartedenabled: 是否自动加载yes|noregenerate: 是否重新生成system_file: 系统文件路径runtime_file: 运行时文件路径config_file: 配置文件路径 Setup 模块 格式 ansible hosts -m setup -a nameservice name enabledyes/no statestate hosts: 指定要操作文件的目标主机可以是单个主机或主机组的名称。 -m file: 通过 -m 参数指定要使用的模块为 file。 -a options: 使用 -a 参数传递模块的选项。选项包括要操作的文件路径、属性变更等。setup 模块的常用选项包括gather_subset 指定要收集的子集信息的列表。默认情况下会收集所有可用的信息。可以使用 hardware, network, virtual, ohai, facter, ohai_timed, puppet, vagrant 或 all 来指定子集。fact_path 用于指定自定义信息facts路径的列表。Ansible 会搜索这些路径以查找自定义事实。filter 过滤已收集的信息facts仅返回匹配指定模式的结果。gather_timeout 设置收集事实的超时时间单位为秒。gather_timeout_multiplier 用于调整超时时间的倍数默认为 1。gather_timeout_retry 在超时后重试的次数默认为 1。cache_valid_time 设置缓存的有效时间单位为秒。fact_caching 启用或禁用缓存功能可以是 memory、jsonfile、json、yaml 或 text。 filter常用的过滤参数  ansible_all_ipv4_addresses ipv4的所有地址 ansible_all_ipv6_addresses ipv6的所有地址 ansible_date_time 获取到控制节点时间 ansible_default_ipv4 默认的ipv4地址 ansible_distribution 系统 ansible_distribution_major_version 系统的大版本 ansible_distribution_version 系统的版本号 ansible_domain 系统所在的域 ansible_env 系统的环境变量 ansible_hostname 系统的主机名 ansible_fqdn 系统的全名 ansible_machine 系统的架构 ansible_memory_mb 系统的内存信息 ansible_os_family 系统的家族 ansible_pkg_mgr 系统的包管理工具 ansible_processor_cores 系统的cpu的核数(每颗) ansible_processor_count 系统cpu的颗数 ansible_processor_vcpus 系统cpu的总个数cpu的颗数*CPU的核数 ansible_python 系统上的pythonansible webservers -m setup -a gather_subsethardware ansible webservers -m setup -a filter*device_link* 四、playbook 前言 1.ansible-playbook介绍 Playbook是一个包含一系列任务的YAML文件用于描述和定义Ansible的配置、部署和管理操作。 ansible-playbook 命令的基本格式 ansible-playbook playbook_file [options] 其中 playbook_file 是指定要运行的Playbook文件的路径。 一些常用的选项 -i, --inventory inventory_file指定主机清单文件的路径。默认情况下Ansible会使用 /etc/ansible/hosts 文件作为主机清单。 -l, --limit pattern限制运行Playbook的主机范围可以使用模式匹配。例如--limit webservers 将只在名为 webservers 的主机上运行Playbook。 -e, --extra-vars extra_vars传递额外的变量给Playbook。可以使用 -e 选项多次来传递多个变量。例如-e var1value1 -e var2value2。 -t, --tags tags只运行带有指定标签的任务。可以使用 -t 选项多次来指定多个标签。例如-t tag1 -t tag2。 -s, --sudo以sudo权限运行Playbook。需要在目标主机上配置好sudo权限。 -K, --ask-become-pass在运行Playbook之前提示输入sudo密码。 2.playbook yml文件格式介绍 缩进:       yaml使用一个固定的缩进风格表示层级结构每个缩进由两个空格组成不能使用tab键 冒号:       以冒号结尾的除外其他所有冒号后面所有必须有空格冒号必须是英文冒号。 短横线:   表示列表项,使用一个短横线加一个空格作为一个列表项多个项使用同样的缩进级别作为同一列表。 --- 表示YAML文档的开始 -name: 定义该playbook名字hosts: 主机可以是all也可以是组也可以是具体的IPbecome: yes/no 执行某个任务的时候尝试切换成特权用户这个可加可不加gather_facts: yes/no  获取目标主机的信息tasks: - name任务名字module模块例如   command、yum、copy、file等模块Options1参数1Options2参数2......       #每个模块都有一组参数介绍这些参数被用来控制模块的行为和执行结果。name任务名称用于在输出中标识任务。state指定状态通常可以设置为 present、 absent 或 latest表示目标应该处于的状态。enabled指定服务是否应该在启动时启用或禁用。args指定传递给命令或脚本的参数列表。 playbook实例 1.在目标主机上安装docker使用docker部署nginx --- - name: docker_nginx installhosts: webserversgather_facts: yes #获取主机信息tasks:- name: setup memorysetup:filter: ansible_memory_mb #获取主机内存- name: setup datesetup:filter: ansible_date_time #获取主机时间- name: copy docker.repocopy: #copy模块将本地的docker-ce.repo拷贝到目标主机上权限644src: /tmp/docker-ce.repodest: /etc/yum.repos.d/docker-ce.repoowner: rootgroup: rootmode: 0644- name: install dockeryum: #yum模块分别安装cece-clicontainerd.io name:- docker-ce- docker-ce-cli- containerd.iostate: latest- name: start firewalld service: #service模块开启自启firewalldname: firewalldstate: startedenabled: yes- name: start docker service: #同上开启自启dockername: dockerstate: startedenabled: yes- name: pull nginxcommand: docker pull nginx #command模块pull镜像- name: create nginx_html_directoryfile: #file模块state指定directory创建该目录path: /usr/share/nginx/htmlstate: directoryowner: rootgroup: rootmode: 0755- name: touch nginx_index #同上state指定touch创建该文件file:path: /usr/share/nginx/html/index.htmlstate: touchowner: rootgroup: rootmode: 0644- name: copy nginx_indexcopy: #copy模块拷贝index文件到目标主机src: /usr/share/nginx/html/index.htmldest: /usr/share/nginx/html/index.htmlowner: rootgroup: rootmode: 0644- name: start nginx_container #command模块run一个nginx镜像command: docker run --name mynginx -p 8080:80 -v /usr/share/nginx/html/index.html:/usr/share/nginx/html/index.html -d nginx- name: get nginx_html #get_url模块访问8080端口get_url:url: http://localhost:8080dest: /tmp/nginx.html运行结果 ansible-playbook docker.yml 访问nginx测试 ansible webservers -m command -a curl -k -v http://localhost:8080
http://www.dnsts.com.cn/news/142616.html

相关文章:

  • 点击图片是网站怎么做的手机网站制作代理
  • 旅游景区网站建设的必要性在线做漫画的网站好
  • 做淘宝网站买个模版可以吗seo优化是利用规则提高排名
  • 游民星空是用什么做的网站北京++网站建设咨询顾问公司
  • 深圳网站有哪些深圳百度代理
  • 河北软件开发网站建设o2o网站系统建设
  • 企业电子商务网站建设教案网站开发行业发展
  • 做物流运输网站电话有自建服务器做网站的吗
  • 内蒙古城乡建设和住房建设厅网站专业网站优化价格
  • 禹城建设局网站河北高端建设网站
  • 青海建设厅网站特种作业wordpress 后台密码文件
  • 建设厅网站上保存键看不见湘潭网站建设是什么
  • 自己建设的网站怎么赚钱沧州网站推广优化
  • 生活服务网站建设方案网站开发技术服务合同
  • p2p网站的建设大庆油田内网主页网址
  • 160 作者 网站建设媒体公关公司
  • 网站怎么做内链接地址温州市网蚁网络有限公司
  • 东莞网站推广怎么做纳溪区城乡住房建设局网站
  • 网站如何做标题优化设计色彩的门户网站模板
  • 浙江方远建设集团网站政务网站建设的重要性
  • 购物网站建设包括哪些购买域名后如何建立网站
  • ae做网站导航网页设计图片间距代码
  • 做网站服务销售用自己的电脑做网站服务器
  • 个人网站备案名字节跳动广告代理商加盟
  • 做网站需要的带宽上行还是下行wordpress 评论翻页
  • 文章类网站模板大学网站首页设计
  • 做电商在什么网站吗北京房产网最新楼盘
  • 网站推广的主要方式湖南网红网站建设有限公司
  • 巴中免费网站建设衡水wap网站建设
  • 万维网站域名电子信息工程系部网站建设方案