在 Docker 中,我可以使用command: --default-authentication-plugin=mysql_native_passwordindocker-compose文件。在创建 MySQL 部署时如何传递它?
我正在使用 MySQL8
我编写了一些 Terraform 代码来创建一些服务器。对于 AMI,我使用 Terraform 数据模块获取最新的 Ubuntu 16.04 映像 ID 并将其分配给 EC2 实例。
最近我想向这个环境添加另一个 EC2 实例,但是当我运行时,terraform plan我可以看到 Terraform 正在尝试删除现有的 EC2 实例并重新创建它们。原因是新的 Ubuntu 映像已发布,它正在尝试删除旧实例并使用新的 AMI ID 创建新实例。
由于我不想意外删除我们的生产服务器,我是否有机会解决这个问题?
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-*"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
}
module "jenkins" {
source = "terraform-aws-modules/ec2-instance/aws"
name = "Jenkins"
instance_count = 1
ami = "${data.aws_ami.ubuntu.id}"
instance_type = "t2.small"
associate_public_ip_address = true
disable_api_termination = true
key_name …Run Code Online (Sandbox Code Playgroud) 我正在使用 Terraform 进行 AWS 多账户设置。我有一个主账户,它创建了几个子账户,在子账户中我引用了主账户的远程状态来检索输出值。
terraform plan测试 main.tf 中此配置的命令失败:
terraform {
required_version = ">= 0.12.0"
backend "s3" {
bucket = "bucketname"
key = "statekey.tfstate"
region = "us-east-1"
}
}
provider "aws" {
region = "us-east-1"
version = "~> 2.7"
}
data "aws_region" "current" {}
data "terraform_remote_state" "common" {
backend = "s3"
config {
bucket = "anotherbucket"
key = "master.tfstate"
}
}
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
? test terraform plan
Error: Unsupported block type
on main.tf line 20, in data "terraform_remote_state" "common":
20: …Run Code Online (Sandbox Code Playgroud) 我很难理解促进构建(及其工件)的概念如何与 GitFlow 协同工作。我正在与 Git、Jenkins 和(作为新添加的)Artifactory 制定持续集成/交付工作流程。这是我迄今为止的工作:
develop分支的构建工件将自动推送到存储dev库(如果单元测试等通过)并因此提升为dev状态。这些工件无法进一步促销。feature分支的工件根本不会被推送或提升。release分支的工件也只能被提升到dev(或者我应该引入一个release回购?)release合并到 中master,新的提交就会被标记,Jenkins 就会运行完整的 CI/CD 管道。在单元测试和指标(在所有分支上运行的构建阶段)之后,工件被推送到一个masterrepo 并提升到master. 然后将工件用于部署到暂存环境,在那里可以进行最终测试(这些测试可以在完整的持续部署设置中自动化)。如果所有测试都成功,工件将被推送到一个prod仓库,部署到生产并提升到prod状态。如果在生产之前的任何阶段失败,则标签属于一个从未进入生产的版本。我的理解正确吗?我主要对主/发布合并感到困惑。直觉上我会说,来自的二进制文件release将接受最多的测试。然而,GitFlow 规定只有在master被标记时提交(我不想标记技术上没有产生进入生产的二进制文件的提交)。如果在构建提交期间发现问题master怎么办?拥有未投入生产的标签是“错误的”吗?我是否必须恢复或撤消标签甚至合并提交?
很高兴听到其他人对此构建推广 + GitFlow 的看法。任何帮助深表感谢。
现在我的 NuGet 还原失败,因为项目构建用户没有对包源的贡献者访问权限。
/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): 错误:无法加载源 pkgs.dev.azure.com[..]index.json 的服务索引。/usr/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): 错误 : 响应状态代码未表示成功:403(禁止 - 用户“xxxxxxx”缺乏完成此操作的权限。您需要有“阅读包”。
解决方案是将构建授权范围从当前项目更改为项目集合。这似乎非常可行,如下所示:
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/options?view=azure-devops
但是,在 DevOps 的无数菜单中,可以在哪里设置此范围?
是否有可能发布标记为私有Verdaccio包而不删除private:true的package.json?
NPM 文档说我们也可以publishConfig用来确保包只发布到特定目录,但没有如何配置它的示例:
我正在尝试使用该模块通过Ansible克隆远程存储库git。这是任务配置:
- name: Clone repo
git:
repo: "{{ repository }}"
dest: "/home/{{ username }}/abc"
key_file: "{{ git_key_file }}"
register: code_update
Run Code Online (Sandbox Code Playgroud)
但不幸的是它失败并出现以下错误:
fatal: [xyz]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin '' /home/xyz/abc", "msg": "Cloning into '/home/xyz/abc'...\nfatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied\nfatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied\nfatal: unable to fork", "rc": 128, "stderr": "Cloning into '/home/xyz/abc'...\nfatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied\nfatal: cannot exec '/tmp/tmpm9mfdkci': Permission denied\nfatal: unable to fork\n", "stderr_lines": ["Cloning into '/home/xyz/abc'...", "fatal: cannot …Run Code Online (Sandbox Code Playgroud) 有没有办法使用 传递多个变量template或函数include?在我的例子中,我遍历了一个项目列表,但在模板中我也需要这个.Release.Name变量。
有没有办法添加到$client了.Release.Name?我试过类似的东西{{ $client.Name := .Release.Name }},但它抛出了一个错误..
我有以下模板:
{{- range $client := .Values.global.clients }}
{{- with $ }}
search.service-{{ $client.clientId }}.cfg: |
{{ include "rest-api.search" $client | indent 4}}
{{- end}}
{{- end}}
Run Code Online (Sandbox Code Playgroud)
rest-api.search 函数:
{{- define "rest-api.search" -}}
client.id={{ .clientId }}
id={{ .clientId }}
uri=http://{{ .Release.Name }}:11666/{index}/ws/{configuration}
default.index=quicksearch
default.configuration=form
query.sort=
query.filter=
query.dsf=word
query.lower=0
query.max=10
query.locale=de
query.query=*
# Index mapping
index.COMMON=quicksearch
index.REF=quicksearch
supportObjectGroup=true
# authorization scheme
authScheme=NONE
{{- …Run Code Online (Sandbox Code Playgroud) 我将 Jenkins 与Bitbucket 分支源插件一起使用。
一切都很好,但我希望能够根据分支是否与拉取请求相关联来运行/排除管道中的某些阶段,例如:
pipeline {
stages {
stage('build') {
//compile
}
stage('package') {
when {
environment name: 'IS_PULL_REQUEST', value: 'true'
}
//create deployable package
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jenkins 知道分支何时用于 PR,因为它将源与目标合并,并且还在多分支管道页面的拉取请求文件夹中显示分支。
我可以在管道中使用环境变量来排除/包含阶段吗?
正如这里所讨论的,在 GitHub Actions 中有一种使用关键字引用job其他jobs 中的 s的好方法need,例如
name: Share data between jobs
on: [push]
jobs:
job_1:
name: Add 3 and 7
runs-on: ubuntu-latest
steps:
# Steps
job_2:
name: Multiply by 9
needs: job_1
# The rest of the job
Run Code Online (Sandbox Code Playgroud)
我在文档中找不到答案的问题是:有没有办法job在其他工作流中引用/共享s?(即单独的yml文件)。
我的项目由几个单独的工作流组成,每个工作流都需要执行相同的初始steps。我试图避免在不同的workflows 中复制粘贴相同的步骤。
continuous-integration github continuous-deployment devops github-actions
devops ×10
git ×2
jenkins ×2
kubernetes ×2
terraform ×2
amazon-ami ×1
amazon-ec2 ×1
ansible ×1
artifactory ×1
azure-devops ×1
bitbucket ×1
docker ×1
github ×1
javascript ×1
mysql ×1
node.js ×1
npm ×1
ubuntu ×1
verdaccio ×1