Pages
Friday, May 28, 2010
Accessing ZFS Snapshots From Windows With "Previous Versions"
Monday, May 24, 2010
Upgrading OpenSolaris to the Latest Build from the dev Repository
Disabling the Splash Screen
Please, pay attention to remove just the ,console=graphics fragment and not the entire kernel line. Failing to do so will result in an unbootable system.
Upgrading to /dev
Minor Problems
Missing xfs Service
During the first boot I noticed an error from the Service Management Facility relating a missing service, xfs. This is just a manifestation of bug 11602 and it just affected the first boot after the upgrade.Xorg Fails to Start
.ICEAuthority Could Not Be Found (A.K.A.: gdm User Has Changed its Home)
13534 "Could not update ICEauthority file /.ICEauthority" on bootup of build 130
http://defect.opensolaris.org/bz/show_bug.cgi?id=13534
The gdm user home directory was reported as / by /etc/passwd. I just changed it to where it belongs and all problems were solved:
Malfunctioning Terminals
Another problem you might find is the following:12380 image-update loses /dev/ptmx from /etc/minor_perm
http://defect.opensolaris.org/bz/show_bug.cgi?id=12380
The workaround is the following:
- Reboot into the working boot environment.
- Execute the following commands:
$ pfexec beadm mount your-BE /mnt
$ pfexec sh -c "grep ^clone: /etc/minor_perm >> /mnt/etc/minor_perm"
$ pfexec touch /mnt/reconfigure
$ pfexec bootadm update-archive -R /mnt
$ pfexec beadm unmount your-BE
Waiting for the Next Release
Sunday, May 23, 2010
Inter Wins its Third Champions League
Wednesday, May 19, 2010
Setting up PostgreSQL on Solaris
Install Required Packages
If you don't see any PosgreSQL instance in your Solaris box then proceed and install the following packages (the list may actually change over time):- SUNWpostgr
- SUNWpostgr-contrib
- SUNWpostgr-devel
- SUNWpostgr-docs
- SUNWpostgr-jdbc
- SUNWpostgr-libs
- SUNWpostgr-pl
- SUNWpostgr-server
- SUNWpostgr-server-data
- SUNWpostgr-tcl
Check if PostgreSQL SMF Services are Configured
PostgreSQL and RBAC
[/etc/passwd]
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
[/etc/security/exec_attr]
Starting PostgreSQL
$ su - postgres
Initial Configuration
Done!
Adding Google Analytics Tracking Code to JIRA
Tuesday, May 18, 2010
VirtualBox v. 3.2.0 Has Been Released Adding Support For Mac OS X
Today, Oracle Corporation has released VirtualBox v. 3.2.0 and renamed it Oracle VM VirtualBox.
- In-hypervisor networking.
- Remote Video Acceleration.
- Page Fusion.
- Memory Ballooning.
- Virtual SAS Controller.
- Mac OS X guest support (on Apple hardware only.)
Installing JIRA on Solaris
- Java SE (JRE or JDK).
- A supported database.
- Optionally, an application server.
Installing Java SE
I usually install private Java SE instance on /opt/jdk replicating the structure of the /usr/jdk which is very helpful, for example, when decoupling specific Java SE instances from shell scripts:
Setting Up JAVA_HOME
Setting Up an User
Please note that Solaris 10 use the /export/home directory as the root of local user home directories. You cal also use Solaris' automount to map user homes in /export/home in /home. Ensure that the /etc/auto_master file contains the following line:
If it's not, enable it:
Setting Up a Project
Setting Up PostgreSQL
In this case, the PostgreSQL 8.3 64-bits instance is active. If it were not, just enable it using the following command:
This is just the beginning, though. To make the initial configuration for your PostgreSQL instance on Solaris, please read this other post.
Installing JIRA
$ pax -w -f your-pax-file.pax .
You can install JIRA on a directory of your choice. I usually install it in the /opt/atlassian subdirectory.
Create a JIRA Home Directory
Setting Your JIRA Home Directory
Creating a Database Schema and an User for JIRA
# psql -U postgres
Configuring Your Database in JIRA
The last thing to do is configuring the entity engine modifying the atlassian-jira/WEB-INF/classes/entityengine.xml file:
Start JIRA
Next Steps
Thursday, May 13, 2010
Filtering Subversion Commits Using a Post Commit Hook
- The repository affected by the commit operation.
- The committed revision number.
Example
Solaris Specific Syntax
Note about sending an email on Solaris
Wednesday, May 12, 2010
HTTP Compression: With Safari, Compress Just Text
BrowserMatch Safari gzip-only-text/html
Monday, May 10, 2010
Speeding Up Web Access and Reducing Traffic With Apache
A Short Introduction
Let's make a short introduction before going on. For compressed output to be understood by agents, coordination between the server and the browser must take place: that's why HTTP/1.1 formalized and standardized how and when compression can be used. Basically, servers and clients exchange information to determine whether compressed requests and responses can be used and, if both support a common algorithm, they use it. Most of the time this information exchange is made with the Accept-Encoding and Content-Encoding HTTP headers.Configuring Your Apache Web Server
Enabling mod_deflate
[...snip...]
Deciding When and What To Compress
- Apply it to everything.
- Apply it at multiple <Location/> level.
- Apply it at <VirtualHost/> level.
- Disable compression on every web server proxied by your front-end Apache server.
- Configure compression on Apache by using appropriate <Location/> sections on at a virtual host level.
An Example Configuration
- Browsers non-compliant behaviors.
- Content types not to compress.
- The first line sets the DEFLATE output filter.
- The next four lines, beginning with the BrowserMatch directive, tells Apache to check its clients' browser version to solve some well-known quirks.
- The sixth line is a regular expression to match the request URI with: if it matches, compression it's not applied. In this case, as you may see, common poorly compressible image formats are matched.
- The last line tells Apache to append an additional header so that proxies will not deliver cached (compressed) responses to clients that cannot accept them.
Next Steps
[...snip...]
and so on.
Command Line Clients to Manage Atlassian Software
Atlassian software such as JIRA and Confluence not only let user interact with them with a web interface: they both expose an API which can invoked remotely via JAX-RPC or SOAP protocols. Such an API is ideal if you need to batch execute some work on an instance or if you want to build a client of your own around it. Nowadays, with the help of modern IDEs and frameworks, it's pretty easy to build a JAX-RPC or SOAP client. The excellent Netbeans, for example, will build a Web Service client for you in just a couple of clicks: more than once I wrapped such a client inside some shell scripts just for their ease of use and for automation's sake.
Nevertheless, if what you need is just a wrapper around these remote APIs, you may consider using the Atlassian Command Line Interfaces instead of building your own client. Atlassian Command Line Interfaces are shell scripts about a Java client and the only requirement to run them is having Java in your $PATH which, probably, you already have. Their syntax respects the typical UNIX shell script conventions and you'll really feel at home with them.
There is an Atlassian Command Line Interface for almost every Atlassian product on the market:
- Bamboo Command Line Interface
- Confluence Command Line Interface
- Crowd Command Line Interface
- Crucible Command Line Interface
- FishEye Command Line Interface
- JIRA Command Line Interface
If you're using more than one product, consider downloading the Atlassian Command Line Interface bundle instead:
Happy scripting and enjoy a better experience with your Atlassian products.
Changing Confluence attachment storage
Take into account that you can switch to database attachment storage any time you need it: even though your Confluence instance is already storing attachments in the local file systems, Confluence will perform a migration of the attachments to the new storage and will soon be back online.
Backing up JIRA and Confluence taking advantage of ZFS snapshots
Sunday, May 2, 2010
JIRA Security Advisory 2010-04-16
JIRA: Creating issues from TLS-encrypted mail
- Configure a mail server.
- Configure the mail service.
Configuring a Mail Server
- Name.
- Default From: address.
- Email Subject: prefix.
- SMTP configuration:
- Host.
- Port.
- (Optional) User credentials.
- JNDI location of a JavaMail Session, in case you're running JIRA on a Java EE Application Server.
Once you've set up a mail server, you can proceed and configure the service that will read your mail box and create issues for you.
Configuring a "Create Issues From Mail" Service
The Services configuration tab lets you define JIRA services, which are the JIRA equivalent of an UNIX cron job. JIRA ships with some predefined services two of which are:- Create Issues from POP.
- Create Issues from IMAP.
There are different handlers you can choose from: you can find detailed information in the JIRA Documentation. The "Create issue or comment" is probably what you're looking for. The handler parameters lets you fine tune your handler with parameters such as:
- project: the project new issues will be created for.
- issuetype: the type of issues that will be created.
- createusers: a boolean flag that sets whether JIRA will create new users when a mail is received from an unknown address. Generally, you want this to be false.
- reporterusername: the name of the issue reporter when the address of the email doesn't match the address of any of the configured JIRA users.
Usually I set this parameter to something like: project=myProjId,issuetype=1,createusers=false,bulk=forward,reporteruserame=myuser
The Uses SSL combo box lets you choose whether you mailbox will be accessed using an encrypted connection. If you're planning to use SSL to access you mailbox you will probably need to import your mail server certificate into your certificate file, as explained later.