标签: devops

如何在使用Edeliver部署的Phoenix Web应用程序中查看生产日志?

使用以下步骤使用Edeliver&Distillery将我们的应用程序成功部署到虚拟机后:https: //github.com/dwyl/learn-phoenix-framework/blob/master/production-deployment.md

该应用程序运行:http://52.232.127.28/ 凤凰-APP-运行

但是当我们试图访问"帖子"路线时:http://52.232.127.28/posts 我们看到internal server error: 凤凰内部服务器错误

作为一个凤凰诺布,不知道如何调试Prod中的日志......

我们如何在虚拟机上看到这些日志?日志在哪里,我们可以tail记录日志吗?

erlang logging elixir phoenix-framework devops

13
推荐指数
1
解决办法
3310
查看次数

如何从docker容器运行webpack构建?

我正在制作的应用程序是用ES6编写的,其他好东西是由Docker容器中的webpack编译的.目前,一切都可以从创建内部目录,安装依赖项和创建编译的bundle文件开始.

相反,当运行容器时,它表示dist/bundle.js不存在.除非我在主机目录中创建捆绑文件,否则它将起作用.

我已经尝试为dist目录创建一个卷,它第一次工作,但在进行更改和重建之后它不会获取新的更改.

我想要实现的是让容器构建并运行已编译的bundle.我不确定webpack部分是作为构建步骤在Dockerfile中还是在运行时,因为CMD ["yarn", "start"]崩溃但是RUN ["yarn", "start"]有效.

任何建议和帮助表示赞赏.提前致谢.

|_src
  |_index.js
|_dist
  |_bundle.js
|_Dockerfile
|_.dockerignore
|_docker-compose.yml
|_webpack.config.js
|_package.json
|_yarn.lock
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

version: "3.3"
services:
  server:
    build: .
    image: selina-server
    volumes:
      - ./:/usr/app/selina-server
      - /usr/app/selina-server/node_modules
      # - /usr/app/selina-server/dist
    ports:
      - 3000:3000
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM node:latest

LABEL version="1.0"
LABEL description="This is the Selina server Docker image."
LABEL maintainer="AJ alvaroo@selina.com"

WORKDIR "/tmp"

COPY ["package.json", "yarn.lock*", "./"]

RUN ["yarn"]

WORKDIR "/usr/app/selina-server"

RUN ["ln", "-s", "/tmp/node_modules"]

COPY [".", "./"]

RUN ["yarn", "run", "build"] …
Run Code Online (Sandbox Code Playgroud)

node.js docker webpack docker-compose devops

13
推荐指数
2
解决办法
4556
查看次数

Jenkins任务为远程主机

在部署场景中,我需要在主机列表上创建和运行jenkins任务,即创建类似参数化任务(其中ip地址是参数)或具有HOST轴的Multijob插件上的任务,但在多个并行运行仅2个1主机.

其中一个选项可能是使用主机列表运行ansible,但我希望分别查看每个主机的状态,并在需要时重新启动jenkins作业.

主要选项是使用Job DSL PluginPipeline Plugin,但在这里我需要帮助来理解应该使用dsl groovy代码的类/方法来实现这一点.
任何人都可以帮忙吗?

continuous-deployment jenkins jenkins-job-dsl devops jenkins-pipeline

12
推荐指数
1
解决办法
762
查看次数

BASH 从字符串中获取主要/次要版本

我是一个非常新的 BASH 脚本,我正在尝试创建自己的脚本以从源下载/构建一个包。但是,我想在我的脚本中添加一些交互,以使其将来为更新版本做好准备。

我的脚本询问用户他们想要安装的版本并生成 wget 命令和下载链接。请参阅下面的摘录:

# Ask user for required version
read packversion

# Download version from internet (depending on version provided above)
wget https://example.com/download/1.10/src/$packversion.tar.gz -O package.tar.gz
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是如果您查看它包含1.10的网址,我只想从提供的字符串中提取主要/次要版本并预先填充它。

有没有我可以使用的功能来实现这一点?

提前致谢。

linux sysadmin bash centos devops

12
推荐指数
2
解决办法
4312
查看次数

如何在AWS CodeBuild云形态模板中设置分支过滤器选项?

如果在CodeBuild项目中使用Github存储库作为源,则该Branch Filter选项允许仅为分支运行构建,分支的名称与特定正则表达式匹配.

  1. AWS管理控制台

在AWS管理控制台中,您可以在创建或编辑CodeBuild项目时配置分支过滤器:

AWS控制台

  1. AWS CLI

对于awscli存在一个选项--update-webhook(在此记录)

    $ aws codebuild update-webhook --project-name myproject --branch-filter ^master$
Run Code Online (Sandbox Code Playgroud)
  1. CloudFormation

在CodeBuild中,cloudformation模板存在一个选项Triggers > Webhook(此处记录),但此选项只是一个简单启用/禁用github webhook的布尔值.

Resources:
    MyCodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
        Name: myproject
        ...
        Triggers:
            Webhook: true
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何直接在云信息模板中定义分支过滤器,而无需执行awscli命令或使用AWS管理控制台?

continuous-integration amazon-web-services aws-cloudformation devops aws-codebuild

12
推荐指数
1
解决办法
3798
查看次数

在Terraform工作空间之间共享资源

我有要在AWS中使用Terraform部署的基础架构。该基础架构可以部署到我正在使用工作空间的不同环境中。

应该为每个工作区分别创建部署中的大多数组件,但是我希望在它们之间共享几个关键组件,主要是:

  • IAM角色和权限
  • 他们应使用相同的API网关,但每个工作区应部署到不同的路径和方法

例如:

resource "aws_iam_role" "lambda_iam_role" {
  name = "LambdaGeneralRole"
  policy = <...>
}

resource "aws_lambda_function" "my_lambda" {
  function_name = "lambda-${terraform.workspace}"
  role = "${aws_iam_role.lambda_iam_role.arn}"
}
Run Code Online (Sandbox Code Playgroud)

第一个资源是IAM角色,应在该Lambda的所有实例之间共享,并且不应重复创建一次。

第二个资源是Lambda函数,其名称取决于当前工作空间,因此每个工作空间都将部署并跟踪不同Lambda的状态。

如何在不同的Terraform工作空间之间共享资源及其状态?

amazon-web-services terraform devops terraform-provider-aws

12
推荐指数
1
解决办法
1902
查看次数

某些存储库的 Azure Devops 权限

我们有一个包含多个存储库的 Azure DevOps 项目。然而,我们只想向另一个团队提供对几个存储库的访问权限。

我已经设置了一个名为的组Outsource(奇怪的是它没有显示在“项目设置”>“常规”>“团队”下),并且在“项目设置”>“存储库”>“存储库”部分中我已授予该组权限。

但是,他们无法从“我的组织”>“存储库”(红色图标)访问这些存储库。他们也无法克隆存储库。

“外包”组中的一个用户被设置为基本用户。

谁能告诉我是否缺少设置?提供针对回购的许可似乎没有任何作用?我还给了他们访问另一个项目的权限,他们可以访问该项目。

azure devops azure-devops

12
推荐指数
1
解决办法
4万
查看次数

Terraform:googleapi:错误 403:资源项目的权限被拒绝

googleapi:错误403:资源项目shared_vpc_host_name的权限被拒绝。,禁止

我正在尝试使用 Terraform 项目 facotry 模块创建共享 vpc 和服务项目,但我遇到了错误,不确定它是否真的与权限相关。这是我收到的错误

Error: googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden

on .terraform/modules/project_factory/terraform-google-project-factory-8.1.0/modules/core_project_factory/main.tf line 136, in resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment":
136: resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment" {

Error: Error retrieving IAM policy for compute subnetwork "projects/shared_vpc_host_name/regions/us-central1/subnetworks/10.128.0.0": googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden
Run Code Online (Sandbox Code Playgroud)

google-api google-cloud-platform terraform devops terraform-provider-gcp

12
推荐指数
3
解决办法
4万
查看次数

Ansible使用systemd而不是服务模块

我刚刚用Ansible 2.2和Debops弄湿了,我遇到了以下问题.我有一个主机test-host,我部署了一个MySQL服务器(使用geerlingguy.mysql).

该角色使用以下处理程序重新启动服务:

---
- name: restart mysql
  service: "name={{ mysql_daemon }} state=restarted sleep=5"
Run Code Online (Sandbox Code Playgroud)

我认为,它使用Ansibles 服务模块来重启服务器.但是,失败了:

unsupported parameter for module: sleep
Run Code Online (Sandbox Code Playgroud)

所以只是为了排除那个自定义角色的任何怪异,我试图像这样直接执行模块:

ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'
Run Code Online (Sandbox Code Playgroud)

结果相同.

使用更详细的输出显示运行Ansible(除其他外):

Running systemd
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py
Run Code Online (Sandbox Code Playgroud)

因此,似乎使用该systemd模块而不是service(查看模块显示它确实是别名service).并且,瞧,systemd不支持sleep参数.

如何解决这个问题?

ansible devops

11
推荐指数
1
解决办法
3900
查看次数

从 slack 回答 Jenkins 输入

我目前正在研究 Jenkins 与 Slack 之间的集成,我想从 slack 中完全控制 Jenkins,基本上,我想触发作业,并且我想回答输入(如果存在)。例如

pipeline{
    agent any
    stages{
        stage('Test Notification success stage'){
            steps{
                script{
                    env.createofflinepkg = input message: 'User input required',
                    ok: 'Submit',
                    parameters: [choice(name: 'Create Offline Package', choices: "Create\nSkip", description: 'Create Offline Package or Skip')]
                }
                slackSend (channel: 'input-response',color: '#ffff00', message: "Yellow at general : Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
            }            
                
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望将其发送到 slack,然后我可以从 slack 中回答这个问题,有没有办法做到这一点?提前致谢。

jenkins slack-api devops slack jenkins-pipeline

11
推荐指数
1
解决办法
546
查看次数