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

英语网站推广策划书普通企业网站建设

英语网站推广策划书,普通企业网站建设,做网站还有搞头吗,男女做暖网站是什么意思1、引言 在当今数字化时代#xff0c;数据是企业和组织的核心资产。为了确保数据的安全性和可恢复性#xff0c;备份是至关重 要的。然而#xff0c;手动备份数据可能会繁琐且容易出错#xff0c;特别是在面对大规模和分布式的数据存储情况下。幸运的是#xff0c;Ansibl…1、引言 在当今数字化时代数据是企业和组织的核心资产。为了确保数据的安全性和可恢复性备份是至关重 要的。然而手动备份数据可能会繁琐且容易出错特别是在面对大规模和分布式的数据存储情况下。幸运的是Ansible作为一种自动化工具能够帮助我们轻松实现核心数据的集中式自动备份。本文将深入探讨如何使用Ansible来自动备份核心数据确保数据安全无忧。 2、背景 公司有一些核心数据需要备份比如gitlabwikiMySQLMongoDB等等数据库。 为了防止数据丢失或损坏我们需要定期备份GitLab数据。备份的内容通常包括Git存储库、配置文件、数据库等 之前方案 在每台相关的机器上备份任务分散数据不容易管理存储 现在方案 采用一台机器设置定时任务把备份数据归档到同一地方存储统一管理 使用Ansible自动备份GitLab具有以下优点 提高效率使用Ansible可以自动备份无需手动执行备份操作。 提高可靠性通过Ansible自动化备份可以减少人为错误提高备份的可靠性。 充分利用资源Ansible可以在多个主机上并行执行任务充分利用资源提高效率。 3、方案实现 编写Ansible Playbook在Playbook中定义需要备份的文件和路径以及备份的文件存储位置。 执行Ansible Playbook通过执行Playbook来自动备份GitLab。 验证备份检查备份文件是否已正确存储并确保文件可用于恢复。 1、基础环境 backupGitlab.yml group_vars hosts [rootansible-yunwei backupData]# tree . . ├── backupGitlab.yml ├── group_vars │?? └── all └── hosts 创建hosts主机 [gitlab] 192.168.xx.xx ansible_ssh_userroot ansible_ssh_passxxxx.xx[confluence] 192.168.xx.xx ansible_ssh_userroot ansible_ssh_passxxxx.xx[uatmysql] 192.168.xx.xx ansible_ssh_userroot ansible_ssh_passxxx.xx[uatmongo8449] 192.168.xx.xx ansible_ssh_userroot ansible_ssh_passxxxx.xx[uatmongo9942] 192.168.xxx.xx ansible_ssh_userroot ansible_ssh_passxxxxx.xx 定义变量环境 # gitlab备份存放目录 gitlabBackupDir: /data/backup/gitlab# confluence备份存放目录 confluenceBackupDir: /data/backup/confluence# uat环境mysql备份存放目录 uatMysqlBackupDir: /data/backup/uatmysql# uat环境mongo(192.168.84.xx)备份存放目录 uatMongo8449BackupDir: /data/backup/uatmongo8449# uat环境mongo(192.168.99.xx)备份存放目录 uatMongo9942BackupDir: /data/backup/uatmongo9942# 备份结果记录文件 statusFile: /data/backup/backupStatus 2、编写Ansible Playbook 获取当前日期创建备份目录。生成GitLab备份文件并拉取至本地备份目录。拉取GitLab配置文件并存储在备份目录中。删除原始备份文件及旧备份文件。记录备份完成状态 [rootansible-yunwei backupData]# cat backupGitlab.yml - name: 备份gitlabhosts: gitlabremote_user: roottasks:- name: 获取当日日期local_action: shell date %Y%m%dargs:warn: noregister: date- name: 本机创建备份目录local_action: file path{{gitlabBackupDir}}/{{date.stdout}} statedirectory ownerroot grouproot mode0700- name: 生成gitlab备份shell: gitlab-backup create STRATEGYcopyargs:warn: no- name: 获取文件名find: paths/var/opt/gitlab/backups/ recurseno patterns*.tarregister: backupFile- name: 拉取备份文件fetch: src{{item.path}} dest{{gitlabBackupDir}}/{{date.stdout}}/ flatTruewith_items:- {{backupFile.files}}- name: 拉取配置文件fetch: src{{item}} dest{{gitlabBackupDir}}/{{date.stdout}}/ flatTruewith_items:- /etc/gitlab/gitlab.rb- /etc/gitlab/gitlab-secrets.json- name: 删除原始文件file: path{{item.path}} stateabsentwith_items:- {{backupFile.files}}- name: 查找旧的备份local_action: find paths{{gitlabBackupDir}}/ recurseno patterns* age3d age_stampmtime file_typedirectoryregister: backupDir- name: 删除旧的备份local_action: file path{{item.path}} stateabsentwith_items:- {{backupDir.files}}- name: 记录备份完成状态local_action: shell if [ ! ls -A {{gitlabBackupDir}}/{{date.stdout}} ]; then echo {{date.stdout}}:successful:gitlab {{statusFile}} ; else echo {{date.stdout}}:failed:gitlab {{statusFile}} ; fiargs:warn: no 3、执行ansible-playbook /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupGitlab.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log4、设置定时任务 1 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupGitlab.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log5、执行结果 4、备份其余类型 backupConfluence.yml - name: 备份confluencehosts: confluenceremote_user: roottasks:- name: 获取当日日期local_action: shell date %Y%m%dargs:warn: noregister: date- name: 获取用于模式匹配的当日日期local_action: shell date %Y_%m_%dargs:warn: noregister: datePattern- name: 本机创建备份目录local_action: file path{{confluenceBackupDir}}/{{date.stdout}} statedirectory ownerroot grouproot mode0700- name: 获取文件名find: paths/var/atlassian/application-data/confluence/backups/ recurseno patternsbackup-{{datePattern.stdout}}.zipregister: backupFile- name: 拉取备份文件fetch: src{{item.path}} dest{{confluenceBackupDir}}/{{date.stdout}}/ flatTruewith_items:- {{backupFile.files}}- name: 查找旧的备份local_action: find paths{{confluenceBackupDir}}/ recurseno patterns* age3d age_stampmtime file_typedirectoryregister: backupDir- name: 删除旧的备份local_action: file path{{item.path}} stateabsentwith_items:- {{backupDir.files}}- name: 记录备份完成状态local_action: shell if [ ! ls -A {{confluenceBackupDir}}/{{date.stdout}} ]; then echo {{date.stdout}}:successful:confluence {{statusFile}} ; else echo {{date.stdout}}:failed:confluence {{statusFile}} ; fiargs:warn: no ** backupUatMongo8449.yml** - name: 备份uat环境mongo数据库(192.168.xx.xx)hosts: uatmongo8449remote_user: roottasks:- name: 获取当日日期local_action: shell date %Y%m%dargs:warn: noregister: date- name: 本机创建备份目录local_action: file path{{uatMongo8449BackupDir}}/{{date.stdout}} statedirectory ownerroot grouproot mode0700- name: 生成备份shell: mongodump --host 192.168.xx.xx --port 27017 -u root -p xxx --authenticationDatabase admin --gzip -o /tmp/uatmongo8449-{{date.stdout}}args:warn: no- name: 进行打包archive: path/tmp/uatmongo8449-{{date.stdout}} dest/tmp/uatmongo8449-{{date.stdout}}.tar formattar removeTrue- name: 拉取备份文件fetch: src/tmp/uatmongo8449-{{date.stdout}}.tar dest{{uatMongo8449BackupDir}}/{{date.stdout}}/ flatTrue- name: 删除原始文件file: path{{item}} stateabsentwith_items:- /tmp/uatmongo8449-{{date.stdout}}.tar- /tmp/uatmongo8449-{{date.stdout}}- name: 查找旧的备份local_action: find paths{{uatMongo8449BackupDir}}/ recurseno patterns* age3d age_stampmtime file_typedirectoryregister: backupDir- name: 删除旧的备份local_action: file path{{item.path}} stateabsentwith_items:- {{backupDir.files}}- name: 记录备份完成状态local_action: shell if [ ! ls -A {{uatMongo8449BackupDir}}/{{date.stdout}} ]; then echo {{date.stdout}}:successful:uatMongo8449 {{statusFile}} ; else echo {{date.stdout}}:failed:uatMongo8449 {{statusFile}} ; fiargs:warn: no ** backupUatMysql.yml** - name: 备份uat环境mysql数据库hosts: uatmysqlremote_user: roottasks:- name: 获取当日日期local_action: shell date %Y%m%dargs:warn: noregister: date- name: 本机创建备份目录local_action: file path{{uatMysqlBackupDir}}/{{date.stdout}} statedirectory ownerroot grouproot mode0700- name: 生成备份shell: mysqldump -h192.168.1xx.xxx -uroot -pxxxx --single-transaction --flush-logs --master-data2 --events --routines --triggers --hex-blob --all-databases | gzip /tmp/uatmysql-{{date.stdout}}.sql.gzargs:warn: no- name: 拉取备份文件fetch: src/tmp/uatmysql-{{date.stdout}}.sql.gz dest{{uatMysqlBackupDir}}/{{date.stdout}}/ flatTrue- name: 删除原始文件file: path/tmp/uatmysql-{{date.stdout}}.sql.gz stateabsent- name: 查找旧的备份local_action: find paths{{uatMysqlBackupDir}}/ recurseno patterns* age3d age_stampmtime file_typedirectoryregister: backupDir- name: 删除旧的备份local_action: file path{{item.path}} stateabsentwith_items:- {{backupDir.files}}- name: 记录备份完成状态local_action: shell if [ ! ls -A {{uatMysqlBackupDir}}/{{date.stdout}} ]; then echo {{date.stdout}}:successful:uatMysql {{statusFile}} ; else echo {{date.stdout}}:failed:uatMysql {{statusFile}} ; fiargs:warn: no [rootkvm-master backupData]# crontab -l # 备份数据Gitlab、Confluence、uat环境mysql(192.168.1xx.xx)、uat环境mongo(192.168.xx.xx) (每天执行一次) 1 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupGitlab.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log 10 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupConfluence.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log 20 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupUatMysql.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log 30 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupUatMongo8449.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log 40 0 * * * /usr/local/python36/bin/ansible-playbook /opt/ansible/backupData/backupUatMongo9942.yml -i /opt/ansible/backupData/hosts 21 /data/backup/backup.log 5、总结 通过上述自动化备份策略我们可以有效地保护Gitlab数据的安全性和完整性。在实际应用过程中这种备份策略还可以根据需要进行定制和扩展以满足不同场景下的需求。希望这篇博客对大家有所帮助
http://www.hkea.cn/news/14353795/

相关文章:

  • 自媒体网站建设论文wordpress的搜索
  • 苗木公司网站模板河南省建设工程注册中心网站
  • 网页设计与网站建设书籍如何创建小程序商店
  • 特产网站模板做海报图片去哪个网站找 知乎
  • 淮安市建设监理协会网站会展公司排名
  • 点对点视频网站开发吉林大学建设工程学院 旧网站
  • 学网站开发和游戏开发那个php网站开发学习
  • 搜索指数的数据来源是什么淮安做网站seo
  • 浙江华纳建设有限公司网站杭州网站建设商城价格
  • 怎么搭建一个网站教程网站模板站的模板展示怎么做的
  • 海南省建设考试网站首页小说推文万能关键词
  • 怎么做跑腿网站安丘网站建设多少钱
  • 晋江外贸网站建设太仓市住房城乡建设局网站
  • 网站建立的具体步骤手工制作教程
  • 网站优化套餐软件定制和开发
  • 外国风格网站建设官网娱乐网站建设ppt
  • 提升网站页面打开速度拉新推广怎么找渠道
  • 个人网站 备案 类型宽带开户多少钱
  • 网站域名和空间区别厦门营销型网站
  • 电子商务网站开发计划书jquery加速wordpress
  • 专业零基础网站建设教学在哪里厦门网站建设工作室
  • 上海网站建设哪个平台好asp网站发邮件
  • 网站建设说明书泉州做网站qzxiaolv
  • 跨境网站开发公司桂阳县网站建设公司哪家好
  • 网站一直建设中网站开发各小组互评表
  • 网站建设征求意见phpcms律师网站模板
  • 昆山网站建设河北网站建设与维护本科教材
  • 网站做友链wordpress网站搭建教程
  • 晋江企业网站建设wdcp 网站无法访问
  • 开发视频网站多少钱程序员接私活平台